- Home
- Categorie
- Coding e Sistemistica
- PHP
- Agirare limiti upload file
-
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
-
@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..
-
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.....
-
@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
-
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