Flash上傳出現IO Error #2038的錯誤解決方法

1、問題

最近在開發網盤系統的時候發現,上傳大文件時會提示IO Error #2038 的錯誤。系統採用了PHP和Flash控件來上傳文件,網上的資料表明出現此錯誤的可能原因包括:

  1. URL無效

  2. 上傳文件大小超過服務器最大上傳限制或最大POST限制

  3. 與服務器連接異常中斷

  4. 上傳的文件爲空

  5. 文件(夾)權限

2、解決方法

首先排除了3、4和5的原因,而在上傳小文件的時候是正常的,也可以排除1的原因。故此集中在第2項進行解決,可能的原因包括:

  1. 限制了上傳文件類型

  2. max_input_time超時

  3. upload_max_filesize上傳文件限制

php.ini中分別對max_execution_timemax_input_timememory_limitpost_max_sizeupload_max_filesize等五個參數進行了設置(可參考php.ini修改php上傳文件大小限制),調大了參數值,發現在上傳小於設置的參數值大小的文件時,仍然存在報錯的情況。

由於使用的是Nginx服務器,此文描述的情況與本文的情況類似,於是在Nginx站點配置文件中加入了client_max_body_size參數的設置:

client_max_body_size 1000m; 

重啓Nginx服務器後,問題解決。

3、總結

在用瀏覽器上傳超大文件時,需要同時修改Nginx和PHP的參數設置,包括:

  1. Nginx:client_max_body_size

  2. PHP:max_execution_timemax_input_timememory_limitpost_max_sizeupload_max_filesize


感謝原作者分享:http://loosky.net/2888.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章