我有一個問題,我有一個HTML表單,上傳一個文件的額外信息。但它允許上傳只有不到10MB的文件。但是,當用戶試圖上傳更大的東西時,$ _POST和$ _FILES數組都是空的(我預計$ _POST會有一些值,$ _FILES會有一些值,但會表明存在上傳錯誤)。
有幾個問題(空的$ _POST,$ _FILES)就是這樣,但我沒有找到任何解決方案或解釋。
HTML表單:
<form enctype="multipart/form-data" method="post" action="upload.php">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input type="file" name="image" />
</p>
<p>
<input type="text" name="other_field" />
</p>
</form>
upload.php的
print_r($_POST); // array()
print_r($_FILES); // array()
exit;
它工作正常,如果文件大小小於10MB(文件大小限制爲10MB),我不希望增加它,我只想在PHP中捕獲錯誤。
從PHP網站
從PHP網站更新(說明/解決方案)(我錯過了這部分):允許 http://us.php.net/manual/en/ini.core.php#ini.post-max-size
集後數據的最大尺寸。該設置也會影響文件上傳。要上傳大文件,該值必須大於upload_max_filesize。如果配置腳本啓用了內存限制,memory_limit也會影響文件上傳。一般來說,memory_limit應該大於post_max_size。當使用整數時,該值以字節爲單位進行測量。如本FAQ中所述,速記符號也可以使用。如果發佈數據的大小大於post_max_size,則$ _POST和$ _FILES超全局變量是空的。這可以通過各種方式進行跟蹤,例如,通過將$ _GET變量傳遞給處理數據的腳本,即,然後檢查是否設置了$ _GET ['processed']。
你讀過HTTP:/ /php.net/manual/en/features.file-upload.php? –
是的,但也許我錯過了那裏的東西。在這種情況下,$ _FILES和$ _POST數組都是空的,看起來他們應該給你一個錯誤代碼。 –