我正在測試我做的一個小應用程序,當上傳超過一定大小的多個文件時,我看到了一個奇怪的行爲。Php上傳奇怪的行爲
我讀過the bug這裏提到,但它的方式很久以前。奇怪的是,我遇到了這個人在bug中提到的同樣的行爲。
- 當我上傳時,說10個小文件(每個50-300kb)的文件沒有任何錯誤,應用程序工作。
- 當我上傳兩個文件(每個文件爲1.5mb)時,應用程序輸出一條錯誤消息,因爲應用程序允許的最大大小爲512kb(php.ini中爲2mb)。
- 當我上傳時,多個文件超過7或8 MB(我還沒有試圖找到確切的大小),PHP崩潰沒有發生錯誤。由於我在開發服務器中,因此打開了錯誤,並且通常會顯示致命錯誤。
- 當我上傳時,1個文件(比如25mbs),我仍然有同樣的錯誤。
嗯,我認爲它崩潰,因爲當我嘗試var_dump($_FILES)
甚至var_dump($_POST)
數組返回null雖然它應該有至少提交姓名或別的什麼東西。
我檢查了tmp文件夾,並且文件也沒有存儲在那裏。然而,另一個奇怪的行爲是,當我上傳超過這個神祕限制的文件時,瀏覽器似乎正在上傳(我看到該頁面需要一段時間才能加載),但是,如前所述,PHP的行爲就像它什麼都不知道。
這種奇怪的行爲可能會是什麼?
PS:我正在使用Windows 7 64位的本地主機(wampserver)。
編輯
找到了解決辦法:
改變的post_max_size從8MB到別的解決我的問題。
這裏是the manual報價爲那些誰需要:允許
集後數據的最大尺寸。此設置也會影響文件 上傳。要上傳大文件,此值必須大於 upload_max_filesize。如果配置 腳本啓用了內存限制,memory_limit也會影響文件上傳。一般來說, memory_limit應該大於post_max_size。當使用整數 時,該值以字節爲單位進行測量。速記符號,如本FAQ中的 所述,也可以使用。如果發佈數據的大小比post_max_size大 ,則$ _POST和$ _FILES超全局變量是空的。 這可以通過各種方式進行跟蹤,例如,通過將$ _GET 變量傳遞給處理數據的腳本,即,然後檢查是否設置了$ _GET ['processed'] 。
爲什麼不手動安裝PHP和Apache?或嘗試使用XAMP – 2013-04-02 12:35:40