• User

    Update immagini in stile facebook

    Ciao a tutti, vi vorrei chiedere come creare un update multiplo in stile facebook, che mi dia la possibilita di caricare massimo 10 foto, ma no per forza tutte insieme "metto una volta 2 foto un altra 5 e cosi via pero senza elimare quelle già salvate prima.
    Adesso uso un update singolo in php questo e il codice
    [php]
    <?php //classe update e ridimensionamento automatico
    $immagine = $_FILES['immagine']['type'];
    //inserisce una foto predefinita se $immagine e vuota
    if (empty ($immagine))
    {
    $timestamp = time(); //uso la funzione time per evitare di sovrascrivere le foto con lo stesso nome
    $files = '../../images/noimage.png'; //directory del file da caricare
    $thumb = imagecreatefrompng($files) or die ("Impossibile aprire l'immagine originale");
    //usare imagecreatefrompng "per foto png", imagecreatefromjpeg "per foto jpg" e ecc.

    //imagealphablending e imagesavealpha per mantenere la trasparenza delle png
    imagealphablending($thumb, false);
    imagesavealpha ($thumb, true);
    $thumbs = '../../images/dipartimento/thumb/'.time().'-'.'noimage.png'; //directory dove salvare file elaborato
    imagepng ($thumb, $thumbs, 9); //usare imagepng "per foto png", imagejpg "per foto jpg" e ecc.
    $file = time().'-'.'noimage.png'; //con $file salvo solo il nome della foto elaborata senza collegamento nel database

    /salvo la foto di prima in un altra cartella/

    $img = imagecreatefrompng($files) or die ("Impossibile aprire l'immagine originale");
    //usare imagecreatefrompng "per foto png", imagecreatefromjpeg "per foto jpg" e ecc.

    //imagealphablending e imagesavealpha per mantenere la trasparenza delle png
    imagealphablending($img, false);
    imagesavealpha ($img, true);
    $imgs = '../../images/dipartimento/foto/'.time().'-'.'noimage.png';//directory dove salvare file elaborato
    imagepng ($img, $imgs, 9);//usare imagepng "per foto png", imagejpg "per foto jpg" e ecc.
    $photo = time().'-'.'noimage.png'; //con $photo salvo solo il nome della foto elaborata senza collegamento nel database
    }
    //se $immagine e piena
    elseif (!empty ($immagine))
    {
    $timestamp = time(); //uso la funzione time per evitare di sovrascrivere le foto con lo stesso nome
    $type = $immagine; //passo il valore di $immagine a $type
    $file = time() .'-'.$_FILES['immagine']['name']; //salvo la foto arrivata da form con il time per avere sempre foto con nomi diversi
    //controllo il formato della foto
    $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) . ".");
    }
    //controllo le dimensioni della foto
    $sImgInfo = getimagesize($_FILES['immagine']['tmp_name']);
    $max_width = "1024";
    $max_height = "1024";
    $sMaxWidth = $sImgInfo[0];
    $sMaxHeight = $sImgInfo[1];
    if ($sMaxWidth > $max_width || $sMaxHeight > $max_height)
    {
    die ("Errore: La Foto ha Dimisioni Maggiori di 1024x1024 " .mysql_error());
    exit;
    }

    $dir ="../../images/dipartimento/foto/";//directory dove salvare la foto originale
    $urlimmagine = $dir.$file; //copio la foto originale della cartella
    copy($_FILES['immagine']['tmp_name'], $urlimmagine);
    $destination_path = '../../images/dipartimento/thumb/'.$file;//directory dove salvare la foto thumb elaborata
    $photo = $file;//salvo questi 2 con lo stesso nome della foto elaborata senza collegamento nel database
    }
    //inizio funzione thummain per cambiare dimensioni alle foto
    list () = thummain ($type, $file, $destination_path, $sMaxWidth, $sMaxHeight, $sImgInfo, $urlimmagine);
    function thummain($type, $file, $destination_path, $sMaxWidth, $sMaxHeight, $sImgInfo, $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) or die ("Impossibile aprire l'immagine originale");
    break;
    case IMG_JPG:
    if (!function_exists('imagecreatefromjpeg')) return $urlimmagine;
    $srcImage = imagecreatefromjpeg($urlimmagine) or die ("Impossibile aprire l'immagine originale");
    break;
    case IMG_PNG:
    if (!function_exists('imagecreatefrompng')) return $urlimmagine;
    $srcImage = imagecreatefrompng($urlimmagine) or die ("Impossibile aprire l'immagine originale");

    break;
    case IMG_WBMP:
    if (!function_exists('imagecreatefromwbmp')) return $urlimmagine;
    $srcImage = imagecreatefromwbmp($urlimmagine) or die ("Impossibile aprire l'immagine originale");
    break;
    default: return $urlimmagine;
    }
    if($srcImage)
    {
    $srcWidth = $sImgInfo[0];
    $srcHeight = $sImgInfo[1];

        $sNewWidth = 152; 
        $sNewHeight =  ($sNewWidth * $srcHeight) / $srcWidth;
        if (!function_exists("imagecreatetruecolor")) 
            $sDestImage = imagecreate($sNewWidth, $sNewHeight) or die("Impossibile creare la miniatura"); 
    
        else
            $sDestImage = imagecreatetruecolor($sNewWidth, $sNewHeight); 
           imagealphablending($sDestImage, false);
    

    imagesavealpha ($sDestImage, true);

    imagecopyresized($sDestImage, $srcImage, 0, 0, 0, 0, $sNewWidth, $sNewHeight, $srcWidth, $srcHeight);
    switch($sType)
    {
    case IMG_GIF: imagegif($sDestImage, $destination_path); break;
    case IMG_JPG: imagejpeg($sDestImage, $destination_path); break;
    case IMG_PNG: imagepng($sDestImage, $destination_path, 9); break;
    case IMG_WBMP: imagewbmp($sDestImage, $destination_path); break;
    }
    imagedestroy($srcImage);
    imagedestroy($sDestImage);
    return $destination_path;
    }

    else 
    { 
        return $urlimmagine; 
    } 
    

    }
    ?>
    [/php]
    Grazie a Tutti.


  • Consiglio Direttivo

    Ciao Spirit19,
    potresti trovare una traccia su come fare quì. 😉