2012-07-31 103 views
0

閱讀了一些答案,並且從未發現與我的問題直接相關的內容。內存限制,500錯誤,巨大的上傳問題

我有一個48兆字節的.csv文件我嘗試上傳並運行,以便客戶端可以進行大規模產品更新/插入。我們偶爾可以讓上傳工作,但現在我得到了我的Ajax請求返回的500錯誤。以下是一些細節:

我們的服務器支持將最大上傳文件大小設置爲100兆字節。

我使用以下ini_sets在腳本的頂部:

set_time_limit(0); 
ini_set("memory_limit",-1); 
ini_set('max_execution_time', 0); 

此處,我認爲這個問題是。由於爲了使這個腳本能夠正常工作,我必須做大量的測試;我可能每天做大約10次上傳。這真的是強調服務器,以及他們的網站目前每天還能接收約500次訪問。

每月帶寬傳輸:12775.43/3000 MB

任何想法,我可以回到我的老闆對這個問題?今天還需要完成,而且我仍在研究清理問題,但如果它是一個帶寬問題,那麼直到明天當服務器重置它的每月帶寬時,我們才能再次進行測試。

感謝您的任何想法。

備註:這已經在過去。如果我的文件尺寸較小,它也可以工作,但客戶端明確要求我們使用這個48兆字節.csv文件。

再次提示:看起來上傳工具在某種程度上工作,因爲它會發布並上傳到我希望發佈到的文件夾。我認爲這個問題是,花費10分鐘上傳和準備文件之後,解析所有數據和超時並不需要很長時間。

另一組的注意事項:以下是500內部服務器問題:

服務器遇到一個內部錯誤或配置錯誤,無法完成您的請求。 請聯繫服務器管理員,網站管理員@_ __ _ .com,並通知他們錯誤發生的時間以及您可能已經造成錯誤的任何事情。 有關此錯誤的更多信息可能在服務器錯誤日誌中可用。 此外,嘗試使用ErrorDocument處理請求時遇到500內部服務器錯誤錯誤。

+0

據我所知'的ini_set()'不會爲'工作upload_max_filesize「,因爲它在嘗試上傳文件後被調用。你必須在你的php.ini設置中改變它。 – Matt 2012-07-31 15:23:47

+0

ini_setting由服務器管理員在php.ini設置中設置,我意外地在這裏包含了一箇舊腳本。 PHPINFO()說我有100M的upload_max_filesize。 – lxndr 2012-07-31 15:29:49

+0

錯誤日誌報告沒有關於此。最後的錯誤是四個小時前,關於網站的一個不同的問題。 – lxndr 2012-07-31 16:21:02

回答

1

也許這是有幫助的。

https://github.com/valums/file-uploader/issues/61

我測試過上傳大文件(64MB的PHP內存設置一個20MB +文件),並得到了一致的內存從PHP刷爆了錯誤,因爲它加載上傳XHR內容爲$ HTTP_RAW_POST_DATA。 儘管將always_populate_raw_post_data設置爲false,但它一直在執行此操作,並且由於該文檔對此問題有點稀疏,所以我無法解決此問題。事實證明,如果您將內容類型僞造爲「multipart/form-data」,PHP不會填充$ HTTP_RAW_POST_DATA(我嘗試了其他內容類型,這是唯一可以工作的),並且您可以上傳大文件而不點擊低內存限制。二進制完整性編程和維持,至少在Chrome和Firefox,這正是我試圖*

我在這裏找到:

Reduce memory consumption in PHP while handling uploads by php input

+0

我正在嘗試這一項。我接手了印度一家開發公司的項目。事實證明,他的表單類沒有爲上傳表單設置enctype,所以我得到了這個結果。上傳應該最多花費大約10分鐘,如果花費的時間比我通常認爲它的功能還要長時間。 – lxndr 2012-07-31 15:41:39

+0

目前在21分鐘左右上傳/解析。通常這個時間500,但仍然比平時花費更多的時間。感謝您的輸入,但我覺得解析文件的時間有點不對,因爲上傳本身工作得很好。 – lxndr 2012-07-31 16:04:55

+0

500內部錯誤。請參閱帖子編輯,瞭解收到的複製錯誤。 – lxndr 2012-07-31 16:11:13