Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    108

    upload immagini controllo se esiste immagine stesso nome

    Ciao a tutti, qualcuno potrebbe aiutarmi nel capire dove inserire un controllo per
    verificare che l'immagine che sto uplodando non è già presente nella cartella di destinazione?
    Mi servirebbe molto questa funzione perchè non voglio sovrascrivere un file
    già esistente e un controllo eviterebbe questo.
    Questo upload carica simultaneamente 2 immagini

    Ho provato a inserire:

    if(!file_exists($file1)){
    $errore.="<span class='avviso'>Il file è già esistente</span></br>";
    }

    Ma viene riportato il messaggio anche quando il file che carico non è presente nella cartella....lo colloco male o è sbagliato?


    INIZIO CODICE:

    $dimensione_massima=1024000; //dimensione massima consentita per file in byte -> 1024 byte = 1 MB
    $dimensione_massima_Kb=$dimensione_massima/1024000;

    $cartella_upload="../../../../prova/"; //cartella in cui eseguire l'upload (controllare permessi scrittura)
    // percorso cartella relativo $cartella_upload="../public/";
    $filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no
    $array_estensioni_ammesse=array('.jpg','.gif'); //estensioni ammesse


    if(!isset($_FILES['file1']) || $_FILES['file1']['size']==0){
    echo "<span class='avviso'>Nessun file selezionato per l'upload miniatura</span>
    ";
    }elseif($_FILES['file1']['size']>$dimensione_massima){
    echo "<span class='avviso'>Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Mb</span>
    ";


    }else{
    $nome_file=$_FILES['file1']['name'];
    $errore="";


    if($filtrare==1){
    $estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
    if(!in_array($estensione,$array_estensioni_ammesse )){
    $errore.="<span class='avviso'>Upload file non ammesso</span>
    . Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."
    ";
    }
    }
    if(!file_exists($cartella_upload)){
    $errore.="<span class='avviso'>La cartella di destinazione non esiste</span>
    ";
    }


    if($errore==""){
    if(move_uploaded_file($_FILES['file1']['tmp_name'], $cartella_upload.$_FILES['file1']['name'])){
    chmod($cartella_upload.$_FILES['file1']['name'],0777); //permessi per poterci sovrascrivere/scaricare
    echo "Operazione eseguita con successo. Upload riuscito.

    ";
    }else{
    echo "<span class='avviso'>Impossibile effettuare l'upload del file</span>
    ";
    }
    }else{
    echo $errore;
    }
    }
    if(!isset($_FILES['file2']) || $_FILES['file2']['size']==0){
    echo "<span class='avviso'>
    GRANDE
    Nessun file selezionato per l'upload dell'immagine grande</span>
    ";
    }

    elseif($_FILES['file2']['size']>$dimensione_massima){
    echo "<span class='avviso'>Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Mb</span>
    ";

    }else{
    $nome_file=$_FILES['file2']['name'];
    $errore="";


    if($filtrare==1){
    $estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
    if(!in_array($estensione,$array_estensioni_ammesse )){
    $errore.="Upload file non ammesso. </span>
    Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."
    ";
    }
    }
    if(!file_exists($cartella_upload)){
    $errore.="<span class='avviso'>La cartella di destinazione non esiste</span></br>";
    }



    if($errore==""){
    if(move_uploaded_file($_FILES['file2']['tmp_name'], $cartella_upload.$_FILES['file2']['name'])){
    chmod($cartella_upload.$_FILES['file2']['name'],0777); //permessi per poterci sovrascrivere/scaricare
    echo "
    Operazione eseguita con successo. Upload riuscito.";
    }else{
    echo "<span class='avviso'>Impossibile effettuare l'upload del file</span></br>";
    }
    }else{
    echo $errore;
    }
    }
    ?>

    FINE CODICE


    Grazie per l'aiuto
    Japan
    Preferisco morire per qualcosa in cui credo che per qualcosa che ritengo vero,la vita di un artista è un lungo e interminabile suicidio e in fondo non mi dispiace che sia cosi..(O.Wilde)

  2. #2
    non ho letto tutto il codice (che cmq dovresti mettere nei tag [ CODE ] o [ PHP ] perchè altrimenti non si legge bene), ma ho trovato subito un errore:

    Codice PHP:
    if(!file_exists($file1)) 

             
    $errore.="<span class='avviso'>Il file è già esistente</span></br>"

    guarda bene l'if: tu gli stai dicendo che SE NON ESISTE il file $file1
    stampa l'errore (che dice che esiste quando in realtà non è così). Secondo logica se inserisci un file che già è stato caricato dovrebbe sovrascrivertelo.. hai provato?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Originariamente inviato da mangusta91
    ...tu gli stai dicendo che SE NON ESISTE il file $file1
    stampa l'errore..


    Visto che ci sono ti do un consiglio, puoi applicare al nome del file caricato in memoria il timestamp dell'operazione...ed è già un passo avanti per evitare la sovrascrittura...e...se proprio vuoi, in caso di submit simultaneo nello stesso "timestampISTANTE" ( ), puoi applicare un numero crescente tra il timestamp ed il nome del file.

  4. #4
    Originariamente inviato da wartpro


    Visto che ci sono ti do un consiglio, puoi applicare al nome del file caricato in memoria il timestamp dell'operazione...ed è già un passo avanti per evitare la sovrascrittura...e...se proprio vuoi, in caso di submit simultaneo nello stesso "timestampISTANTE" ( ), puoi applicare un numero crescente tra il timestamp ed il nome del file.

    oppure puoi farglielo rinominare se esiste, appendendogli ad esempio il timpestamp o l'id se c'è un database di mezzo

    comunque wartpro immensa stima per il tuo avatar!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Mmmmh non volevo tirare in ballo il database..ci avevo pensato anche io..è vero che è "roba da nulla" un'istruzione in più o un'istruzione in meno. Ad ogni modo si, se pò fa

    Grazie grazie, il mio idolo! E comunque anche il tuo è bello..non so perchè mi fa venire in mente i cartoni animati dove ci sta la neve, tipo Balto e robe simili

    (stop con considerazioni OT sennò sò... )

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    suggerimento aggiuntivo per il nome... se serve un nome univoco ci sono funzioni apposite in php, oppure - se si pensa che il timestamp non sia sufficiente - si può tirare in ballo l'md5... ma qui esagero :)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    108
    grazie a tutti per la risposta davvero, solo non sono in grado di applicare i vostri consigli nella pratica aimè..
    potreste per favore farmi un esempio

    Grazie
    japan
    Preferisco morire per qualcosa in cui credo che per qualcosa che ritengo vero,la vita di un artista è un lungo e interminabile suicidio e in fondo non mi dispiace che sia cosi..(O.Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Codice PHP:
    <?php

    $momento_richiesta 
    time(); // Esempio: 12391

    $il_tuo_file $_FILES['file']['name']; // Esempio: mio-file.jpg

    $nuovo_nome_del_file $momento_richiesta.$il_tuo_file// Esempio: 12391mio-file.jpg

    // ..e..se proprio vogliamo dare un tocco di personalizzazione..

    $nuovo_nome_del_file2 $momento_richiesta."_sitoJapan_".$il_tuo_file// Ovvero: 12391_sitoJapan_mio-file.jpg

    ?>


  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    108
    Grazie mille adesso ci provo!!

    ciao japan
    Preferisco morire per qualcosa in cui credo che per qualcosa che ritengo vero,la vita di un artista è un lungo e interminabile suicidio e in fondo non mi dispiace che sia cosi..(O.Wilde)

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