Problema con upload di immagini che superano 2MB

Fabio Grasso

Nuovo Utente
6 Nov 2014
26
0
0
35
www.grassofabio.com
Buona serata,mi ritrovo con un problema che non so come gestire,ho uno script che recupera un'immagine da un form e che dopo aver superato qualche controllo viene salvata in una cartella.
Ora se le immagini caricate hanno una dimensione minore o uguale a 2Mb vengono salvate correttamente,mentre se superano questo limite non vengono proprio prese in considerazione da php infatti ho controllato con la funzione file_exists($_FILES['immagine']['tmp_name']) e mi restituisce false.

Leggendo per la rete ho scoperto che il problema è dovuto all'opzione upload_max_filesize nel file php.ini che di default è impostato a 2MB e infatti aumentando il valore il problema si risolve.

Ma ho anche letto che tale modifica si può fare solo in locale,e che la maggior parte dei server non permettono di modificare questo parametro :(

Avete dei suggerimenti per risolvere questo inconveniente?
 
so che per le versioni inferiori a PHP 5.3 si può modificare il php.ini così:
PHP:
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');

Ma non credo che il tuo provider lo permetta.
 
ho un problema simile e se prova a caricare file grande comunque mi va in errore.
voi riuscite a gestirlo ?
 
ciao
PHP:
<?php
//......
$ammesso=2000000;
if($_FILES['immagine']['size'] > $ammesso){
	echo "file troppo grande";
}else{
	//....
}
//...
?>
 
La condizione si mette apposta : se non è verificata non deve entrare.
 
Riprendendo l'esempio di Borgo Italia
Codice:
 <?php
//......
$ammesso=2000000;
if($_FILES['immagine']['size'] > $ammesso){
    echo "file troppo grande";
}else{
    echo "ok";
}
//...
?>

In teoria caricando un immagine superiore a 2MB dovrebbe stampare "file troppo grande",invece stampa sempre ok
 
"immagine" dovrebbe essere il name del tuo input file.
posta l'html del form
 
esatto 'immagine' è il nome del input file...
ecco un semplice form di prova:
Codice:
<form method="post" enctype="multipart/form-data">
<input type="file" name="immagine">
<input type="submit" value="upload">
</form>
 
ho notato che se il file supera le dimensioni indicate nel php.ini viene restituito 0 o false (non ho indagato)
in questo caso cmq possiamo aggiungere alla condizione una verifica i più
PHP:
<?php
$ammesso = 200000;
if (isset($_FILES['immagine'])) {
    if ($_FILES['immagine']['size'] === 0 || $_FILES['immagine']['size'] > $ammesso) {
        echo "file vuoto o troppo grande";
    } else {
        echo "ok";
    }
}
?>
 

Discussioni simili