2012-06-26 232 views
0

我在我的一個站點中使用Soundcloud API,文檔中提到最大上載文件爲500MB,每當我嘗試上傳大於1MB的文件時,系統都會返回一個500錯誤(內部服務器錯誤)。小於1MB的文件可以正常工作。內部服務器錯誤大文件

我使用PHP 5,curl和Soundcloud API。

感謝您的關注!

擁抱。

+0

如果我的回答是正確的,請考慮將其標記爲您的問題的答案。 – zamnuts

回答

3

500mb的限制與他們的 API,發送文件給他們。但是,如果您的服務器最初接收文件(然後發送到soundcloud),則您的服務器也有限制。這通常是你的php.ini中定義:

upload_max_filesize = 50M 
post_max_size = 50M 

或者這有時可以在你的htaccess的覆蓋,如果你沒有你的ini文件的訪問:

php_value upload_max_filesize 50M 
php_value post_max_size 50M 

你也需要增加使用set_time_limit或在php.ini設置的max_execution_time腳本執行時間(15分鐘?)和內存限制:

max_execution_time = 900 
memory_limit = 64M 

您需要小心並考慮增加這些限制的含義。他們被設計爲安全機制。例如,如果增加memory_limit並且PHP消耗太多內存,則當前進程將移動到交換並降低性能,並可能導致機器崩潰甚至損壞數據;最大執行時間將允許腳本延續更長的時間,所以如果你的腳本寫得不好,它可能無限期地掛起或者至少15分鐘(像我上面那樣)並最終達到其內存限制或機器限制 - 更不用說有多個腳本累積運行和消耗資源。