Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    upload foto: cambiare il nome aggiungendo un numero progressivo ad ogni foto

    ciao a tutti
    vorrei fare l'upload di alcune foto ma vorrei fare in modo che cambiasse il nome in automatico, ad esempio tutte le foto le rinomino foto_ ed in automatico deve uscire:
    foto_1
    foto_2
    foto_3
    foto_4
    foto_5
    ecc

    Attualmente uso questo codice che mi uppa le foto con il nome che gli setto io
    Codice PHP:
    @move_uploaded_file($_FILES["foto"]["tmp_name"], "$directory_foto/$id_hotel/big/$file_name"
    come posso modificarlo?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Nel form hai più campi per i file da caricare e vuoi numerare solo quelle caricate di volta in volta oppure bisogna tener conto della numerazione di eventuali foto già caricate in precedenza?

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    no nel form ho solo un campo dove inserisco di volta in volta le foto e le memorizzo anche in un db con id autoincrement

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Se il numero che vuoi aggiungere al nome del file è lo stesso dell'id, apri una transazione sul db, fai l'insert nella tabella, leggi l'id inserito e poi lo usi per il nome del file, salvi il file e se va bene dai il commit, se va male dai il rollback per non avere inserimenti nel caso in realtà il file non venisse salvato.
    Codice PHP:
    //apri la transazione e fai l'insert, poi
    $query 'SELECT max(id) AS id FROM tabella';
    $result mysql_fetch_assocmysql_query($query) );

    $filename 'foto_'.$result['id'].'.jpg'//l'estensione vedi un po' come metterla, puoi ricavarla dai dati del file che carichi

    if ( @move_uploaded_file(..., $file_name) ) 
    {
        
    //commit
    }
    else
    {
        
    //rollback


  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    facciamo diversamente.
    Voglio che la foto abbia il nome come e' rinominata ma ci aggiungo anche la data di oggi, esempio:

    montagna_vista_dal_mare_11342255323.jpg

    Parte del codice che sto utilizzando e':
    Codice PHP:
    $nome_foto=time(); ///ricavo il time che poi devo aggiungere al nome della foto
    //################################################################################################################################################
    //INSERIAMO LA FOTO CHE ANDRA' NELLA PAGINA DELL'HOTEL
    $new_name "$nome_foto.jpg";
    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name $_FILES["foto"]["name"];
    //$file_name = 'foto_['numero_foto'].'.jpg';
    if(trim($_FILES["foto"]["name"]) == "") {
    die(
    "<span class=redbold>Non hai indicato il file da uploadare !</span>");
    }
    if(@
    is_uploaded_file($_FILES["foto"]["tmp_name"])) {
    @
    move_uploaded_file($_FILES["foto"]["tmp_name"], "$directory_foto/$id_hotel/big/$file_name")
    or die(
    "Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload. $directory_foto<br>");
    } else {
    die(
    "Problemi nell'upload del file " $_FILES["foto"]["name"]);
    }
    echo 
    "<span class=\"hotel-offerte-verde\">L'upload del file " $_FILES["foto"]["name"] . " è avvenuto correttamente</span><br><br><span class=hotel-offerte-fucsia><a href=index.php?id_hotel=$id_hotel>Carica altre foto</a></span>"
    Dove aggiungo la variabile $nome_foto?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Codice PHP:
    $file_name $_FILES['foto']['name'].time().'.jpg';

    @
    move_uploaded_file($_FILES["foto"]["tmp_name"], "$directory_foto/$id_hotel/big/$file_name"); 
    EDIT: eh, no, così ti trovi 2 volte .jpg

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si infatti, ho fatto la prova ed esce il nome tipo:
    cleo.jpg1381010255.jpg

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Richiedi che i file siano rigorosamente .jpg?
    In tal caso ti basterebbe fare
    Codice PHP:
    $file_name substr($_FILES['foto']['name'],0,-4).time().'.jpg'
    Se invece accetti anche altre estensioni devi calcolare la posizione dell'ultimo . per potre rimuovere l'estensione.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Se c'è il caso che puoi avere estensioni di lunghezze diverse, vedi jpg e jpeg, l'unica è calcolare la posizione dell'ultimo . con strrpos()
    Codice PHP:
    $posizione strrpos($_FILES['foto']['name'], '.');

    $file_name substr($_FILES['foto']['name'],0,$posizione-1).'_'.time().'.jpg'
    Fa una prova rinominando un file .jpg in .jpeg, vedi se funziona.

  10. #10
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ok confermo
    con le jpeg mi aggiunge un punto anche col nuovo codice
    con le jpg funziona bene

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 © 2026 vBulletin Solutions, Inc. All rights reserved.