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

Discussione: nome immagini

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208

    nome immagini

    ho scoperto che se l'utente carica una foto con un nome uguale a quello esistente nel database

    compare questo:
    File esistente sul server: controlla se hai inserito precedentemente questa foto o pure prova a rinominarla

    ma carica cmq la foto che ha inserito l'utente precedente

    il codice è questo:

    Codice PHP:
    if (file_exists('../public/foto_utenti/'.$_FILES['foto']['name'])) 
    {     
    die(
    'File esistente sul server: controlla se hai inserito precedentemente questa foto o pure prova a rinominarla.');     

    come posso far si che non carichi la foto?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    ho pensato che questo problema si potrebbe risolvere semplicemente con la funzione if che carica un immagine di sfondo

    quindi dopo

    Codice PHP:
     if (file_exists('../public/foto_utenti/'.$_FILES['foto']['name']))  

    qual'è lo script da inserirci?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    ho provato in questo modo ma non funziona :

    Codice PHP:
    if (file_exists('../public/foto_utenti/'.$_FILES['foto']['name'])) 

    die (
    'File esistente sul server: controlla se hai inserito precedentemente questa foto o pure prova a rinominarla');
    $query "UPDATE tabella SET foto='../images/senzafoto.jpg ' WHERE utente ='" $_SESSION['utente'] . "'";      
    mysql_query($query); 


  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    ecco lo script della pagina che elabora l'inserimento delle foto:

    Codice PHP:

    session_start
    ();




    if (isset(
    $_POST['invia'])) { 




    $query "UPDATE tabella SET foto='" $_FILES['foto']['name']  . "' WHERE utente ='" $_SESSION['utente'] . "'"
    mysql_query($query); 


    //percorsi cartelle per il caricamento dei files  
    $cartella_thumbs "../public/foto_utenti_thumbs/";  
    $cartella_upload "../public/foto_utenti/";  

    //la larghezza delle miniature, in pixel  
    $img_thumb_width 120;  


    //verifica le dimensioni del file caricato  
    if($_FILES['foto']['size'] ==0)  
    {     
      die(
    'Errore : campo upload nullo');     
    }  

    // Ottengo le informazioni sull'immagine  
    list($width$height$type$attr) = getimagesize($_FILES['foto']['tmp_name']);  
    // Controllo che le dimensioni (in pixel) non superino 150x200  
    if (($width 150) || ($height 200))  
    {  
      die(
    "Dimensioni non corrette");  
    }  

    $file_permessi = array("image/pjpeg","image/jpeg");  
    if(!
    in_array($_FILES['foto']['type'], $file_permessi))  
    {     
    die(
    'Estensione non consentita');     
    }  
    // Verifico che sul sul server non esista già un file con lo stesso nome 
    if (file_exists('../public/foto_utenti/'.$_FILES['foto']['name'])) 
    {     
    die(
    'File esistente sul server: controlla se hai inserito precedentemente questa foto o pure prova a rinominarla.');     
    }  
    /////////////////////// 
    //crea la thumbsnail/// 
    ////////////////////// 
    $ThumbWidth $img_thumb_width
    //crea la nuova immagine 
    if($_FILES['foto']['size']){ 
    if(
    $_FILES['foto']['type'] == "image/pjpeg" || $_FILES['foto']['type'] == "image/jpeg"){ 
    $new_img imagecreatefromjpeg($_FILES['foto']['tmp_name']); 
    }elseif(
    $_FILES['foto']['type'] == "image/x-png" || $_FILES['foto']['type'] == "image/png"){ 
    $new_img imagecreatefrompng($_FILES['foto']['tmp_name']); 
    }elseif(
    $_FILES['foto']['type'] == "image/gif"){ 
    $new_img imagecreatefromgif($_FILES['foto']['tmp_name']); 

    //ottiene larghezza e altezza dell'immagine originale. 
    list($width$height) = getimagesize($_FILES['foto']['tmp_name']); 
    //calcola le proporzioni e ottiene dimensioni thumbsnail 
    $imgratio=$width/$height
    if (
    $imgratio>1){ 
    $newwidth $ThumbWidth
    $newheight $ThumbWidth/$imgratio
    }else{ 
    $newheight $ThumbWidth
    $newwidth $ThumbWidth*$imgratio

    //funzione per ridimensionare l'immagine. 
    if (function_exists(imagecreatetruecolor)){ 
    $resized_img imagecreatetruecolor($newwidth,$newheight); 
    }else{ 
    die(
    "Errore: Assicurati che sul tuo server siano installate le GD library"); 

    //ridimensionamento 
    if($_FILES['foto']['type'] == "image/x-png" || $_FILES['foto']['type'] == "image/png"){ 
    imagealphablending($resized_imgfalse); 

    imagecopyresized($resized_img$new_img0000$newwidth$newheight$width$height); 
    //salva l'immagine 
    $nome_file strtolower($_FILES['foto']['name']); 
    if(
    $_FILES['foto']['type'] == "image/pjpeg" || $_FILES['foto']['type'] == "image/jpeg"){ 
    imagejpeg ($resized_img,"$cartella_thumbs/$nome_file"); 

    elseif(
    $_FILES['foto']['type'] == "image/x-png" || $_FILES['foto']['type'] == "image/png"){ 
    imagesavealpha($resized_imgtrue); 
    imagepng ($resized_img,"$cartella_thumbs/$nome_file"); 

    elseif(
    $_FILES['foto']['type'] == "image/gif"){ 
    imagegif($resized_img,"$cartella_thumbs/$nome_file"); 

    ImageDestroy ($resized_img); 
    ImageDestroy ($new_img); 

    if(!
    is_uploaded_file($_FILES['foto']['tmp_name'])) 
    {die(
    'Erroe nel caricamento');    
    }    
    move_uploaded_file($_FILES['foto']['tmp_name'],$cartella_upload .$nome_file)    
    or die(
    'Non posso caricare il file'); 
    echo 
    "L'immagine è stata ridimensionata ed inserita con successo:
     <img src=\"
    $cartella_thumbs/$nome_file\" />
    "








    }; 

    if (isset(
    $_POST['cancella'])) {    

    $query "UPDATE tabella SET foto='../images/senzafoto.jpg ' WHERE utente ='" $_SESSION['utente'] . "'";      
    mysql_query($query);    

    }; 
    sai dirmi come risolvere il problema ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    per essere più chiari, quando un utente ad esempio carica una foto 1.jpg che è già presente nelle cartelle, questa non viene giustamente inviata e appare il messaggio corettamente, ma il nome dato "1.jpg " va a finire nel database e per questo motivo compare la foto dell'utente che si era inserito precedentemente.

    insomma dovrei fare una modifica sullo script e dirgli che oltre a non inviare la foto, anche di non scrivere il nome sul database

    qualcuno può aiutarmi????

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ehm... sposta la query di update alla fine ed eseguila solo se i controlli sul file sono tutti positivi e l'immagine è caricata sul server...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    oppure così potrebbe funzionare ugualmente?


    Codice PHP:
    if (file_exists('../public/foto_utenti/'.$_FILES['foto']['name'])) 
    {     
    die(
    'File esistente sul server: controlla se hai inserito precedentemente questa foto o pure prova a rinominarla.');     


    else {    

    $query "UPDATE tabella SET foto='../images/senzafoto.jpg ' WHERE utente ='" $_SESSION['utente'] . "'";      
    mysql_query($query);    

    }; 

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    eventualmente dopo quale riga la inserisco la query?

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    io eseguirei la query subito dopo il move_uploaded_file(), poco prima del messaggio di successo

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.