Metodo POST per caricamento di file

Parliamo un po' del caricamento dei file da POST.

1) Non sono sicuro di aver capito come le direttive post_max_size e upload_max_filesize si influenzino. Il manuale dice:

post_max_size integer

Imposta la dimensione massima dei dati post. Questa impostazione influenza anche gli upload dei file. Per permettere upload di file di grandi dimensioni, il valore impostato deve essere maggiore di upload_max_filesize.

Nel mio server post_max_size è 8M mentre upload_max_filesize 50M.

Vi dico quello che ho capito io: il limite degli upload via POST intanto resta di 8M, ma se fosse maggiore di upload_max_filesize, poniamo 55M, il limite per il POST sarebbe quello "sovrascrivendo" upload_max_filesize. Giusto?

Quindi post_max_size mi sembrerebbe in qualche modo prevalere.

Tanto più che il manuale dice chiaramente che:

Se la dimensione dei dati post è maggiore di post_max_size, le variabili superglobale $_POST e $_FILES sono vuote.

Perché allora nei codici di errore restituiti da $_FILES UPLOAD_ERR_INI_SIZE si fa riferimento a upload_max_filesize invece che a post_max_size? Mah...

 :bye: :bye:

inviato 10 anni fa
usecram
X 0 X

Il protocollo HTTP prevede diversi "metodi" per l'interazione tra il client ed il server. I più conosciuti sono il metodo GET ed il metodo POST. Quest'ultimo permette di allegare alla richiesta di un URI anche dei dati (generalmente quelli presenti in un form di una pagina HTML).

La direttiva post_max_size si riferisce alla massima dimensione dei dati provenienti via POST accettabili.

Il protocollo HTML permette attraverso un form di inviare anche il contenuto di un file, utilizzando sempre il metodo POST dell'HTTP. Questi dati quindi devono sottostare alle limitazioni della direttiva post_max_size ed inoltre non devono superare il limite impostato da upload_max_filesize, che si applica non a tutti i dati inviati con il POST ma solo a quelli che rppresentano un file.

Le due limitazioni quindi si riferiscono a protocolli diversi che però sono strettamente collegati poiché l'HTML (che realizza l'upload attraverso un form) viaggia sopra l'HTTP che fornisce il metodo POST.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

La direttiva post_max_size si riferisce alla massima dimensione dei dati provenienti via POST accettabili.

Il protocollo HTML permette attraverso un form di inviare anche il contenuto di un file, utilizzando sempre il metodo POST dell'HTTP. Questi dati quindi devono sottostare alle limitazioni della direttiva post_max_size ed inoltre non devono superare il limite impostato da upload_max_filesize, che si applica non a tutti i dati inviati con il POST ma solo a quelli che rppresentano un file.

Bene allora se ho capito, sempre con riferimento al caricamento via POST, con i valori di default che ho in locale (post_max_size = 8M e upload_max_filesize = 2M) l'upload massimo consentito è 2M perché appunto

... non devono superare il limite impostato da upload_max_filesize,...

Nell'esempio del mio server remoto (post_max_size = 8M e upload_max_filesize = 55M) l'upload massimo consentito è 8M.

Dico giusto?

risposto 10 anni fa
usecram
X 0 X

Si ad entrambe le domande. Non ho mai verificato la cosa ma la teoria è questa. Se magari puoi fare qualche test chiudiamo in bellezza l'argomento.  :D

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
...Se magari puoi fare qualche test chiudiamo in bellezza l'argomento.  :D

Caro Gianni colgo l'invito: teoria e pratica coincidono perfettamente!

post_max_size = 8M e upload_max_filesize = 2M: Non sono consentiti upload superiori a 2M altrimenti $_FILES['nomefile']['error'] = 1 (Il file inviato eccede le dimensioni specificate nel parametro upload_max_filesize di php.ini).

post_max_size = 8M e upload_max_filesize = 20M: Non sono consentiti upload superiori a 8M altrimenti, come avverte il manuale, sia $_POST che $_FILES sono vuote!

Do pure un paio di link in italiano per chi volesse approfondire l'argomento:

1)  http://it2.php.net/manual/it/features.file-upload.php#features.file-upload.post-method

2)  http://php.html.it/articoli/leggi/848/upload-con-php/1/

Grazie  ;)

risposto 10 anni fa
usecram
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili