Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208

    problema con le immagini

    ho un database tipo varchar 255 in cui vengono salvate i nomi delle immagini che stanno nella cartella

    l'immagine caricata dall'utente va su 1 cartella, ma va anche in forma rinpicciolita su un'altra cartella


    tutto funziona perfettamente tranne per il fatto che spesso ci sono problemi riguardanti le dimensioni delle immagini, per essere sicuri che l'utente possa caricare l'immagine e necessario che sia 800 di altezza x 600 di larghezza e sia in jpg

    e possibile modificare il seguente codice per dare la possibilità di inserire immagini anche per esempio 3000pixel x 500 pixel ecc... praticamente con meno limitazioni ???????

    Codice PHP:
    session_start(); 

    $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_utente_thumbs/";  
    $cartella_upload "../public/foto_utente/";  

    //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 600x800  
    if (($width 600) || ($height 800))  
    {  
      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_utente/'.$_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\" />
    "


    ?> 

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Dove vedi 800 mettici 3000.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    ho messo anche 6000 e 6000, ma dopo quando carico immagini ad esempio di 4000 di larghezza per 5000 di altezza, mi da dimensioni non corrette perchè?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    nessuno sa dirmi come devo fare????


    se questa parte di codice la cancello???


    Codice PHP:
    if (($width 600) || ($height 800))   
    {   
      die(
    "Dimensioni non corrette");   


  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    inoltre volevo inserire anche un pulsante delete dove l'utente quando vuole può cancellare il nome della foto inserita

    qualcuno mi aiuta???

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

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da martina01
    ho messo anche 6000 e 6000, ma dopo quando carico immagini ad esempio di 4000 di larghezza per 5000 di altezza, mi da dimensioni non corrette perchè?
    Perché evidentemente il controllo sulle dimensioni viene fatto anche da qualche altra parte.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    si, oltre a quello c'è questo nel form:

    Codice PHP:
    <input type="hidden" name="MAX_FILE_SIZE" value="8000000" /> 
    che vuol dire sotto agli 8 mega e questo nn da problemi

    lo script che elabora il form è Tutto quello che ho postato prima, forse il problema sta quando rinpicciolisce la foto?

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ho copiato e incollato il tuo codice di upload in una pagina e funziona alla perfezione.
    server linux..

    per il pulsante CANCELLA devi fare una pagina in cui invii in GET il nome dell'immagine e l'id dell'utente che deve cancellare l'immagine. fai cancellare l'immagine con unlink. E fai l'update del profilo con una query in cui setti a "vuoto" il campo immagine. ovviamente fai dei controlli sennò chiunque cancella le immagini degli altri..

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    208
    quindi anche se carichi una foto di 5000 pixel di altezza e 200 pixel di larghezza carica ugualmente?


    per quanto rigurda il tasto cancella ecco lo script del form:

    Codice PHP:
    <form action="modifiche_utente/modifica_foto.php" method="post" enctype="multipart/form-data" name="modifica_foto" class="z1" id="modifica_foto">
                                  <
    label>
                                  <
    input type="hidden" name="MAX_FILE_SIZE" value="8000000" />
                                  <
    input name="foto" type="file" class="z1" size="28" />
                                  </
    label>
                                  <
    label>
                                  <
    input type="submit" value="Invia" />
                                  </
    label>
                                </
    form
    potresti riscrermi lo script con l'aggiunta del pulsante "cancella"?
    e quindi anche la modifica che devo effettuare su modifica_foto.php (sarebbe lo script che ho postato prima)

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.