Insidie Comuni
La voce MAX_FILE_SIZE
non può specificare una dimensione del
file maggiore di quella impostata dal parametro upload_max_filesize del
file php.ini. L'impostazione di default è 2 megabytes.
Se si è impostato un limite di memoria memory_limit può essere necessario ampliarlo.
Occorre essere certi di impostare memory_limit
alle dimensioni appropriate.
Se max_execution_time
è impostato ad un valore basso, l'esecuzione dello script può eccedere tale valore.
Ampliare max_execution_time
ad un tempo sufficiente per l'upload.
Nota:
max_execution_time influisce solo
sul tempo di esecuzione dello script. Il tempo utilizzato per attività
esterno allo script, tipo le chiamate di sistema
system(), o la funzione
sleep(), le query nei database, il tempo inpiegato
nell'upload del file non è considerato nel computo del tempo
di esecuzione dello script.
Avviso
max_input_time imposta il tempo massimo,
in secondi, in cui lo script può ricevere dati; questo comprende
l'upload di file. Per file di grandi dimensioni o molteplici file, o su connessioni lente,
il valore di default 60 seconds
può essere sforato.
Se post_max_size è impostato ad un valore
troppo piccolo, non si può inviare file di grosse dimensioni.
Impostare post_max_size
alle dimensioni appropriate.
Da PHP 5.2.12, il parametro di configurazione
max_file_uploads
controlla il numeo massimo di file che possono essere caricati in una singola
richiesta. Se sono caricati più file del limite fissato, allora
$_FILES smetterà di processare i file una volta che il
limite è raggiunto. Per esempio, se
max_file_uploads è impostato a
10
, allora $_FILES non conterrà mai
più di 10 elementi.
Non controllare il file su cui si sta operando potrebbe dare agli utenti
accesso a informazioni sensibili contenute in altre directory.
Si noti che che il server CERN httpd sembra eliminare qualsiasi cosa a partire
dal primo spazio nell'header mime content-type che riceve dal client.
Fino a che questo si verificherà, il server CERN httpd non supporterà la possibilità
di caricare file.
A causa della varietà di formati di directory, non si è in grado di
garantire che nomi di file strani (ad esempio contenenti spazi) siano gestiti correttamente.
Un sviluppatore non può mischiare normali campi di input con campi di upload di file con lo
stesso nome di campo (utilizzando nomi tipo foo[]
).