2013-04-02 44 views
1

我正在測試我做的一個小應用程序,當上傳超過一定大小的多個文件時,我看到了一個奇怪的行爲。Php上傳奇怪的行爲

我讀過the bug這裏提到,但它的方式很久以前。奇怪的是,我遇到了這個人在bug中提到的同樣的行爲。

  1. 當我上傳時,說10個小文件(每個50-300kb)的文件沒有任何錯誤,應用程序工作。
  2. 當我上傳兩個文件(每個文件爲1.5mb)時,應用程序輸出一條錯誤消息,因爲應用程序允許的最大大小爲512kb(php.ini中爲2mb)。
  3. 當我上傳時,多個文件超過7或8 MB(我還沒有試圖找到確切的大小),PHP崩潰沒有發生錯誤。由於我在開發服務器中,因此打開了錯誤,並且通常會顯示致命錯誤。
  4. 當我上傳時,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'] 。

+0

爲什麼不手動安裝PHP和Apache?或嘗試使用XAMP – 2013-04-02 12:35:40

回答

1

這是錯誤,因爲您的上傳限制非常少 - upload_max_filesize or post_max_size。在PHP中使用 。ini只是將兩者的值都增加到200MB,並且您將nt收到此錯誤

+0

我已經嘗試更改上傳大小,但仍然是相同的行爲。 –

+0

但我忘記了post_max_size;)謝謝 –

+0

你是否在刷新(重新啓動)後更改了你的wamp服務器 – mukund

1

在服務器中存在發送郵件的限制。你應該是512kb。你可以檢查phpinfo();

我認爲它的參數在php.ini upload_max_filesize。改爲更大的尺寸。