Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    16

    ridimensionamento foto non funziona

    ciao a tutti vi chiedo scusa se vi chiedo il ridimensionamento delle foto, visto che già se ne parta nel forum, ma non capisco dov è l'errore, dopo che aggiungo con un form immagine nella cartella del server locale non mi crea la thumb. ho provato anche le info che ho trovato nel forum, ho attivato il file gd2.dll di easy php 2.01 e lo copiato nella cartella di windows, ma non va ancora vi coppio il codice "ps il codice non lo fatto tutto io"
    Codice PHP:

     
    $uploadedfile 
    $_FILES['immagine']['type']['size'];
    $uploadedfile = array("image/gif","image/x-png""image/png","image/pjpeg","image/jpeg""image/jpg");
    if(!
    in_array($_FILES['immagine']['type'],$uploadedfile)) 
    {
    die(
    "Il file non è di un tipo consentito, sono ammessi solo: " implode("," $uploadedfile) . ".");
    }
    $max_width "1800"
    $max_height "1800"
    $timestamp time(); 
    $dimensioni getimagesize($_FILES['immagine']['tmp_name']);     
    $sMaxHeight $dimensioni[0];   
    $sMaxWidth $dimensioni[1]; 
    if (
    $sMaxWidth $max_width || $sMaxHeight $max_height) { 
    die (
    "Errore di Dimisioni" .mysql_error());        
    exit; }

    $sOrigine "../pro_images/foto/";
    $sDestinazione ="../pro_images/thumb/";

    list(
    $sOrigine$sDestinazione$width$height) = fnCreaThumbnail($_SERVER['DOCUMENT_ROOT'].$urlimmagine $sOrigine.time() .'-'$_FILES['immagine']['name']);
    copy($_FILES['immagine']['tmp_name'], $urlimmagine);

    $urlimmaginethumb = ($_SERVER['DOCUMENT_ROOT'].$sDestinazione.time() .'-'$_FILES['immagine']['name']);
    copy($_FILES['immagine']['tmp_name'], $urlimmaginethumb);

    function 
    fnCreaThumbnail($urlimmagine$urlimmaginethumb$sMaxWidth$sMaxHeight

        
    /* 
         * Verifica l'esistenza dell'immagine d'origine e, se presente, ne determina 
         * la tipologia 
         */ 

        
    $sImgInfo getimagesize($urlimmagine); 
        switch(
    $sImgInfo[2]) 
        { 
            case 
    1$sType IMG_GIF; break; 
            case 
    2$sType IMG_JPG; break; 
            case 
    3$sType IMG_PNG; break; 
            case 
    4$sType IMG_WBMP; break; 
            default: return 
    $urlimmagine; break; 
        } 

        switch(
    $sType
        { 
            case 
    IMG_GIF
                if (!
    function_exists('imagecreatefromgif')) return $urlimmagine
                
    $srcImage imagecreatefromgif($urlimmagine); 
                break; 
            case 
    IMG_JPG
                if (!
    function_exists('imagecreatefromjpeg')) return $urlimmagine
                
    $srcImage imagecreatefromjpeg($urlimmagine); 
                break; 
            case 
    IMG_PNG
                if (!
    function_exists('imagecreatefrompng')) return $urlimmagine
                
    $srcImage imagecreatefrompng($urlimmagine); 
                break; 
            case 
    IMG_WBMP
                if (!
    function_exists('imagecreatefromwbmp')) return $urlimmagine
                
    $srcImage imagecreatefromwbmp($urlimmagine); 
                break; 
            default: return 
    $urlimmagine
        } 

        if(
    $srcImage
        { 
            
    /* Recupera la dimensione in pixel dell'immagine d'origine */ 
            
    $srcWidth $sImgInfo[0]; 
            
    $srcHeight $sImgInfo[1]; 
              
              
            
    /* 
             * E imposta a zero quelle di destinazione o alla dimensione della 
             * sorgente se non è limitata 
             */ 
            
    $sNewWidth = ($sMaxWidth == $srcWidth 0); 
            
    $sNewHeight = ($sMaxHeight == $srcHeight 0); 

            
    /* Calcola il rapporto di proporzione */ 
            
    $sPropW $sNewWidth $srcWidth
            
    $sPropH $sNewHeight $srcHeight
              
            
    /* 
             * Quindi procede al controllo per determinare se una (o entrambe) le 
             * dimensioni eccedono quelle massime relative. 
             * Se una sola eccede quella massima relativa questa verrà massimizzata 
             * nonché, l'altra dimensione, ricalcolata onde mantenere le proporzioni 
             * corrette. 
             * Se entrambe le dimensioni eccedono i loro massimi, viene determinato 
             * quale tra le due è la maggiore e viene ricalcolata l'altra. 
             */ 
            
    if ($sPropW && $sPropW <= $sPropH
            { 
                
    /* 
                 * Vi è limite alla larghezza massima, l'immagine d'origine eccede 
                 * tale limite e quest'ultima è anche la dimensione più grande (o 
                 * eguale) tra larghezza ed altezza. 
                 */ 
                
    $sNewWidth $sMaxWidth
            } 

            if (
    $sPropH && $sPropH <= $sPropW
            { 
                
    /* 
                 * Vi è limite all'altezza massima, l'immagine d'origine eccede 
                 * tale limite e quest'ultima è anche la dimensione più grande (o 
                 * eguale) tra larghezza ed altezza. 
                 */ 
                
    $sNewHeight $sMaxHeight
            } 
              
            
    /* 
             * A questo punto, se una delle due nuove dimensioni è ancora pari a 
             * zero, significa che quest'ultima deve essere ricalcolata in base 
             * alla sua antagonista per poter rispettare le proporzioni. 
             */ 
            
    if ($sNewWidth && $sNewHeight == 0
            { 
                
    /* Ricalcola l'altezza */ 
                
    $sRatioWidth $srcWidth $sNewWidth
                
    $sNewHeight $srcHeight $sRatioWidth
            } 

            if (
    $sNewHeight && $sNewWidth == 0
            { 
                
    /* Ricalcola la larghezza */ 
                
    $sRatioHeight $srcHeight $sNewHeight
                
    $sNewWidth $srcWidth $sRatioHeight
            } 
              
            if (
    $sNewWidth == && $sNewHeight == 0
            { 
                
    $sNewWidth $srcWidth
                
    $sNewHeight $srcHeight
            } 
              
            
    /* Procede quindi alla creazione effettiva della thumbnail */ 
            
    if (!function_exists("imagecreatetruecolor")) 
                
    $sDestImage imagecreate($sNewWidth$sNewHeight); 
            else 
                
    $sDestImage imagecreatetruecolor($sNewWidth$sNewHeight); 
              
            
    imagecopyresized($sDestImage$srcImage0000$sNewWidth$sNewHeight$srcWidth$srcHeight); 

            switch(
    $sType
            { 
                case 
    IMG_GIFimagegif($sDestImage$urlimmaginethumb); break; 
                case 
    IMG_JPGimagejpeg($sDestImage$urlimmaginethumb); break; 
                case 
    IMG_PNGimagepng($sDestImage$urlimmaginethumb); break; 
                case 
    IMG_WBMPimagewbmp($sDestImage$urlimmaginethumb); break; 
            } 

            
    /* Libera la memoria */ 
            
    imagedestroy($srcImage); 
            
    imagedestroy($sDestImage); 

            return 
    $urlimmaginethumb
        } 
        else 
        { 
            return 
    $urlimmagine
        } 

    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    16
    ciao a tutti
    ho modificato il codice per ridimensionare la foto, ma mi da un errore di permess sulla cartella
    Warning: imagejpeg() [function.imagejpeg]: Unable to open '../pro_images/thumb/' for writing: Permission denied in C:\Program Files\EasyPHP 2.0b1

    adesso ho provato sia su win xp e vista, ma non va.i permessi della cartella sono ok, vi chiedo; ho sbaliato io qualcosa nel codice? o è il server locale?
    ps io salvo il collegamento della foto nel database "="../pro_images/foto/", pero cosi la foto la vedo solo nelle pagine che sono in una sottocartella della root mentre pro_images/foto/ e nella root. come devo fare per visualizzare la foto salvata con il collegamento ../pro_images/foto/ in tutte le pagine?
    grazie a tutti
    Codice PHP:
    if ((isset($_POST["immagine"])) and ($_POST["immagine"] == "") ) 

    $type $_FILES['immagine']['type'];
    $type = array("image/gif","image/x-png""image/png","image/pjpeg","image/jpeg""image/jpg");

        if(!
    in_array($_FILES['immagine']['type'],$type)) 
            {
                die(
    "Il file non è di un tipo consentito, sono ammessi solo i seguenti: " implode("," $type) . ".");
            }


    $dir ="../pro_images/foto/";
    $destination_path "../pro_images/thumb/";

    $timestamp time(); 

     if (!
    file_exists($destination_path)) 
            {
                
    mkdir($destination_path 0777);
            }
     if (!
    file_exists($dir)) 
            {
                
    mkdir($dir 0777);
            }
    $urlimmagine $dir.time() .'-'$_FILES['immagine']['name'];        
    copy($_FILES['immagine']['tmp_name'], $urlimmagine);


    $sImgInfo getimagesize($urlimmagine); 
    $max_width "1800"
    $max_height "1800"
    $sMaxWidth $sImgInfo[0]; 
    $sMaxHeight $sImgInfo[1];   

    if (
    $sMaxWidth $max_width || $sMaxHeight $max_height) { 
    die (
    "Errore di Dimisioni" .mysql_error());        
    exit; }
        
    list(
    $width$height$type$attr) = @getimagesize$urlimmagine);        

       switch(
    $sImgInfo[2]) 
        { 
            case 
    1$sType IMG_GIF; break; 
            case 
    2$sType IMG_JPG; break; 
            case 
    3$sType IMG_PNG; break; 
            case 
    4$sType IMG_WBMP; break; 
            default: return 
    $urlimmagine; break; 
        } 

        switch(
    $sType
        { 
            case 
    IMG_GIF
                if (!
    function_exists('imagecreatefromgif')) return $urlimmagine
                
    $srcImage imagecreatefromgif($urlimmagine); 
                break; 
            case 
    IMG_JPG
                if (!
    function_exists('imagecreatefromjpeg')) return $urlimmagine
                
    $srcImage imagecreatefromjpeg($urlimmagine); 
                break; 
            case 
    IMG_PNG
                if (!
    function_exists('imagecreatefrompng')) return $urlimmagine
                
    $srcImage imagecreatefrompng($urlimmagine); 
                break; 
            case 
    IMG_WBMP
                if (!
    function_exists('imagecreatefromwbmp')) return $urlimmagine
                
    $srcImage imagecreatefromwbmp($urlimmagine); 
                break; 
            default: return 
    $urlimmagine
        } 

        if(
    $srcImage
        { 
            
    /* Recupera la dimensione in pixel dell'immagine d'origine */ 
            
    $srcWidth $sImgInfo[0]; 
            
    $srcHeight $sImgInfo[1]; 
              
              
            
    /* 
             * E imposta a zero quelle di destinazione o alla dimensione della 
             * sorgente se non è limitata 
             */ 
            
    $sNewWidth = ($sMaxWidth == 250 $srcWidth 0); 
            
    $sNewHeight = ($sMaxHeight == 250 $srcHeight 0); 

            
    /* Calcola il rapporto di proporzione */ 
            
    $sPropW $sNewWidth $srcWidth
            
    $sPropH $sNewHeight $srcHeight
            if (
    $sPropW && $sPropW <= $sPropH
            { 
               
    $sNewWidth $sMaxWidth
            } 

            if (
    $sPropH && $sPropH <= $sPropW
            { 
                
    /* 
                 * Vi è limite all'altezza massima, l'immagine d'origine eccede 
                 * tale limite e quest'ultima è anche la dimensione più grande (o 
                 * eguale) tra larghezza ed altezza. 
                 */ 
                
    $sNewHeight $sMaxHeight
            } 
              
            
    /* 
             * A questo punto, se una delle due nuove dimensioni è ancora pari a 
             * zero, significa che quest'ultima deve essere ricalcolata in base 
             * alla sua antagonista per poter rispettare le proporzioni. 
             */ 
            
    if ($sNewWidth 250 && $sNewHeight == 0
            { 
                
    /* Ricalcola l'altezza */ 
                
    $sRatioWidth $srcWidth $sNewWidth
                
    $sNewHeight $srcHeight $sRatioWidth
            } 

            if (
    $sNewHeight 250 && $sNewWidth == 0
            { 
                
    /* Ricalcola la larghezza */ 
                
    $sRatioHeight $srcHeight $sNewHeight
                
    $sNewWidth $srcWidth $sRatioHeight
            } 
              
            if (
    $sNewWidth == 250 && $sNewHeight == 0
            { 
                
    $sNewWidth $srcWidth
                
    $sNewHeight $srcHeight
            } 
              
            
    /* Procede quindi alla creazione effettiva della thumbnail */ 
            
    if (!function_exists("imagecreatetruecolor")) 
                
    $sDestImage imagecreate($sNewWidth$sNewHeight); 
            else 
                
    $sDestImage imagecreatetruecolor($sNewWidth$sNewHeight); 
              
            
    imagecopyresized($sDestImage$srcImage0000$sNewWidth$sNewHeight$srcWidth$srcHeight); 

            switch(
    $sType
            { 
                case 
    IMG_GIFimagegif($sDestImage$destination_path); break; 
                case 
    IMG_JPGimagejpeg($sDestImage$destination_path); break; 
                case 
    IMG_PNGimagepng($sDestImage$destination_path); break; 
                case 
    IMG_WBMPimagewbmp($sDestImage$destination_path); break; 
            } 

            
    /* Libera la memoria */ 
            
    imagedestroy($srcImage); 
            
    imagedestroy($sDestImage); 

            return 
    $destination_path
        } 
        
        else 
        { 
            return 
    $urlimmagine
        } 
    copy($_FILES['immagine']['tmp_name'], $destination_path.$sDestImage); 

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.