• User Attivo

    Agirare limiti upload file

    Ciao ho un sito web su aruba-linux.
    Vorrei dare agli utenti la possibilità di inserire foto ma con file di 900Kb o superiori mi dà il seguente errore
    [php]Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 2304 bytes) in /web/htdocs/www.vvtv.it/home/vvtv2.0/registrazione_addslave.php on line 47[/php]Credo il prob sia dato dai limiti impostati nel file ini,
    come posso agirare tale problema?

    Grazie

    Giuseppe


  • User Attivo

    @GC said:

    Ciao ho un sito web su aruba-linux.
    Vorrei dare agli utenti la possibilità di inserire foto ma con file di 900Kb o superiori mi dà il seguente errore
    [php]Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 2304 bytes) in /web/htdocs/www.vvtv.it/home/vvtv2.0/registrazione_addslave.php on line 47[/php]Credo il prob sia dato dai limiti impostati nel file ini,
    come posso agirare tale problema?

    Grazie

    Giuseppe
    Credo che se è un impostazione data nel file ini tu non ci possa fare niente, credo..


  • User Attivo

    a me non sembrano limiti imposti, se ci fai caso 2300 bytes sono + di 2Mb per cui non dovresti avere problemi ,P.S. uso lo stesso web server e non ho mai avuto problemi anche con file molto grandi.....


  • User Attivo

    @jackass said:

    a me non sembrano limiti imposti, se ci fai caso 2300 bytes sono + di 2Mb per cui non dovresti avere problemi ,P.S. uso lo stesso web server e non ho mai avuto problemi anche con file molto grandi.....

    Il problema forse è un altro
    posto il codice così magari vedi se lo trovi

    [php]
    foreach ($_FILES["foto"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
    $tmp_name = $_FILES["foto"]["tmp_name"][$key];
    $imgsize = getimagesize("$tmp_name"); //restituisce un array con width(0) height (1) e type (2)
    if ($imgsize[2] == 2) { //controllo che estensione img sia jpg
    $name = "img".$nu_id.".jpg";
    $cartella = "utenti/";
    $largh = 120;
    if (move_uploaded_file($tmp_name, $cartella.$name)) {

                if ($imgsize[0] > $largh) { //ridimensiona l'immagine se più larga di 120px
                      $new_width=$largh;
                      $ratio = $imgsize[0]/$largh; //proporzione di ridimensionamento
                      $new_height=round ($imgsize[1]/$ratio); //prende l'altezza, la divide per la ratio e arrotonda la cifra 
                }
                else {$new_width=$imgsize[0]; $new_height=$imgsize[1]; }    
                      
                $compression=80; //compressione jpg  
    
                global $cartella;
                global $new_width;
                global $new_height;
    
                $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");
                $srcimg=ImageCreateFromJPEG($cartella.$name) or die("Problemi nell'aprire l'immagine");
                imagecopyresampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento");
                ImageJPEG($destimg,$cartella.$name,$compression) or die("Problemi nel salvataggio dell'immagine");
            }    //fine if (move_uploaded_file($tmp_name, $cartella.$name))
            else {die("Problemi nell'upload dell'immagine");}       
       } //fine if ($imgsize[2] == 2)
    $img_name[$key] = $name;
    

    } //fine if ($error == UPLOAD_ERR_OK)
    } //fine ciclo foreach
    [/php]l'errore viene segnalato su questa riga
    [php] $srcimg=ImageCreateFromJPEG($cartella.$name) or die("Problemi nell'aprire l'immagine");
    [/php]Grazie


  • User Attivo

    Mi rispondo da solo 🙂
    ho trovato la soluzione quì http://www.senamion.it/2006/06/25/php-errore-con-immagini-di-grandi-dimensioni-imagecreatefromjpeg/

    è bastato inserire questa stringa nella pagina
    [PHP]ini_set("memory_limit", "128M"); [/PHP]

    Ciao