Visualizzazione dei risultati da 1 a 8 su 8

Discussione: rinomina file

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    112

    rinomina file

    ciao a tutti uso questo script per uplodare file immagini sul server e mi funziona ora pero vorrei sapere come rinomino il file io lo vorrei rinominare utilizzando la funzione mysql_insert_id che mi ristituisce l'id di autoincrement del db
    do {
    if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    // Controllo che il file non superi i 18 KB
    if ($_FILES['file']['size'] > 54432) {
    $msg = "Il file non deve superare i 18 KB!!";
    break;
    }
    // Ottengo le informazioni sull'immagine
    list($width, $height, $type, $attr) = getimagesize($_FILES['file']['tmp_name']);
    // Controllo che le dimensioni (in pixel) non superino 160x180
    if (($width > 160) || ($height > 180)) {
    $msg = "Dimensioni non corrette!!";
    break;
    }
    // Controllo che il file sia in uno dei formati GIF, JPG o PNG
    if (($type!=1) && ($type!=2) && ($type!=3)) {
    $msg = "Formato non corretto!!";
    break;
    }
    // Verifico che sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('catalogo/immagini/'.$_FILES['file']['name'])) {
    $msg = "File già esistente sul server. Rinominarlo e riprovare.";
    break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['file']['tmp_name'],'catalogo/immagini/'. $_FILES['file']['name'])) {
    $msg = "Errore nel caricamento dell'immagine!!";
    break;
    }else{
    $msg="file uplodato con successo";//messaggio di conferma di avvenuto successo
    }
    }
    }
    while (false);

  2. #2
    non capisco dove sta il problema e perchè devi utilizzare il database, in questa riga:

    if (!move_uploaded_file($_FILES['file']['tmp_name'],'catalogo/immagini/'. $_FILES['file']['name'])) {

    nel secondo parametro anzichè $_FILES['file']['name'] metti il nome che vuoi assegnare al file...


  3. #3
    Praticamente dovresti crearti una tabella tipo codici con campi
    id_codice int autoincrement Primary Key

    Sostituisci questa parte di codice

    // Verifico che sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('catalogo/immagini/'.$_FILES['file']['name'])) {
    $msg = "File già esistente sul server. Rinominarlo e riprovare.";
    break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['file']['tmp_name'],'catalogo/immagini/'. $_FILES['file']['name'])) {
    $msg = "Errore nel caricamento dell'immagine!!";
    break;
    }else{
    $msg="file uplodato con successo";//messaggio di conferma di avvenuto successo
    }

    con:

    //Apri la connessione al DB
    $conn = mysql_connect...........;

    $sql_ins_codice = "INSERT INTO codici (id_codice) VALUES(\"\")";
    $ins_codice = @mysql_query($sql_ins_codice, $conn) or die("Errore");

    //Preleviamo il nuovo codice
    $sql_prendi_codice = "SELECT LAST_INSERT_ID() as id_c FROM codici";
    $prendi_codice = @mysql_query($sql_prendi_codice, $conn) or die("Errore");

    $riga_codice = @mysql_fetch_assoc($prendi_codice);
    $codice = $riga_codice['id_c'];

    /* Ora creiamo il nuovo nome del file. Supp. ke il file uploadato sia prova.jpg e ke il nuovo
    codice sia 5. Allora il nuovo nome sarà: prova_5.jpg */

    $path_partts = path_info($_FILES['file']['name']);

    $new_name = basename($_FILES['file']['name'], $path_parts['extension']) . "_" . $codice .
    $path_parts['extension'];


    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['file']['tmp_name'],'catalogo/immagini/'. $new_name))
    {
    $msg = "Errore nel caricamento dell'immagine!!";
    break;
    }else
    {
    $msg="file uplodato con successo";//messaggio di conferma di avvenuto successo
    }


    Spero di aver capito bene! Ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    112

    Re: rinomina file

    io ho creato la tabella con campi
    id
    nome
    commento
    data
    con il tuo script mi incrementa il valore id ma pero mi da questo errore e non trasferisce il file

    Fatal error: Call to undefined function path_info() in C:\Programmi\Apache Group\Apache2\htdocs\websolutionportal\prova.php on line 53

  5. #5
    Si scusa la funzione è pathinfo, cmq. se avresti letto il manuale ti saresti accorto anche tu dell'errore.

  6. #6
    Originariamente inviato da gianf_tarantino
    Si scusa la funzione è pathinfo, cmq. se avresti letto il manuale ti saresti accorto anche tu dell'errore.
    Scusa ancora, se avessi letto.....

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    112
    no ho letto difatti appena ti ho postato l'ho risolto ma mi da un problema
    invia il file ma lo invia invece di esempio prova_1.png lo prova._png

    ma vedendo meglio potrei rinominare invece di prova_1.png 1.png
    dato che dopo aver inserito i dati mi recupero l'id di incremento automatico!

    e scusami ancora.

  8. #8
    Nel codice ho fatto un errore. Ho scritto:

    $path_partts = path_info($_FILES['file']['name']);

    anziché $path_parts

    Forse è questo il problema. Prova.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.