Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  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,503
    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,503
    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,503
    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,503
    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
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si sono solo estensioni jpg quindi va quasi bene.
    L'unica cosa e' che non mi mette l'underscore tra il nome della foto e il numero (mi serve per il motore di ricerca che potrebbe beccare il nome di quella foto nei risultati)
    Sto provando a metterlo un po' ovunque ma mi da errore.

    Come posso modificarlo?
    Che significano quello 0 e quel meno 4?
    Grazie per ora

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    $file_name substr($_FILES['foto']['name'],0,-4).'_'.time().'.jpg'
    Quei numeri vogliono dire: dall'inizio della stringa (posizione 0) fino al carattere prima del quart'ultimo (il .)
    In pratica elimina gli ultimi 4 caratteri, .jpg
    Ultima modifica di Alhazred; 06-10-2013 a 00:19

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.