2011-06-08 79 views
0

我有一個php上傳腳本,通過18個文件週期應該上傳平均大小約8 MB,但該網站並沒有上傳所有的文件,但是如果我嘗試用2或3它工作正常,所以有安全原因或有什麼限制嗎?PHP上傳限制

編輯:感謝所有的答案,有不止一個答案是正確的,因此很遺憾不能標記所有的人都正確的,但感謝你的嘗試:)

+1

這可能是緩存的事情,而不是PHP的限制。 – slandau 2011-06-08 20:58:49

+0

嗯,你知道解決方法嗎? – 2011-06-08 20:59:52

回答

4
在php.ini變化

upload_max_filesize = 100M or your number 

memory_limit = 128M or your number 

post_max_size = 100M 
+0

要考慮的其他選項:'max_file_uploads'(出廠默認值爲20,但這個值有所不同,所以值得檢查。) – hakre 2011-06-08 21:36:05

2

,能得到任何錯誤?如果你沒有看到它們,請檢查你的php錯誤日誌。

嘗試增加PHP的內存限制,

ini_set('memory_limit', '128mb'); 

,並嘗試你的腳本增加了時間限制,

set_time_limit(0); //infinite 
+0

明天我會試試,讓你知道它是否工作:) – 2011-06-08 21:02:18

+0

ini_set()對上傳沒有意義。它的行動太晚了。改爲在你的php.ini文件中設置這些值。 – hakre 2011-06-08 21:17:09

+0

@hakre你爲什麼會這樣認爲?如果這些文件存儲在內存中以便在上傳過程中處理,那麼肯定這很重要.. – 2011-06-08 21:21:23

1

@約翰,我認爲這不涉及存儲,而不是通過php.ini中與其相關的文件大小上傳限制,所以儘量在php.ini中chnage此:

upload_max_filesize = 170M // 8 * 18 ~ 160 

如果您無法訪問php.ini文件,你可以嘗試加入這一行.htaccess文件在你的根目錄:

php_value upload_max_filesize 170M 

注: 您可以使用腳本,如果某些文件是更大然後你的內存限制文件。因此請記住,上傳過程中用於存儲文件的內存。

+0

如果它與最大上傳文件大小有關,則整個$ _FILES數組將爲空。由於執行理事會聲稱部分文件已上傳,情況並非如此。 – 2011-06-08 21:19:57

+0

@John曾經,我上傳了轉儲的數據庫,它很大,它的大小小於我的內存限制,但它大於上傳大小限制,更改上傳大小限制可以修復我的問題。 – SIFE 2011-06-08 21:23:13

+0

請重新訪問我的評論。如果所有文件大小的總和超過由php.ini定義的最大文件大小,則ENTIRE $ _FILES數組將爲空。在這種情況下,由於某些文件已上傳,因此表示未超過最大大小,但無論是處理上載的內存耗盡還是耗盡時間來處理它們。 – 2011-06-08 21:25:54