解決PHP大文件上傳問題

下面簡單介紹下php上傳文件涉及到的參數:

   0:文件上傳時存放文件的臨時目錄。必須是 PHP 進程所有者用戶可寫的目錄。如果未指定則 PHP 使用系統默認值

   php.ini文件中upload_tmp_dir用來說明PHP上傳的文件放置的臨時目錄。

   要想上傳文件,得保證服務器沒有關閉臨時文件和有對文件夾的寫權限

   1:max_execution_time

   變量max_execution_time設置了在強制終止腳本前PHP等待腳本執行完畢的時間,此時間以秒計算。當腳本進入了一個無限循環狀態 時此變量非常有用。然而,當存在一個需要很長時間完成的合法活動時(例如上傳大型文件),這項功能也會導致操作失敗。在這樣的情況下必須考慮將此變量值增 加,以避免PHP在腳本正在執行某些重要過程的時候將腳本關閉。

   max_execution_time = 90

   2:file_uploads = On

   3:upload_max_filesize = 2M

   4:post_max_size

   同表單提交相關的一個變量是post_max_size,它將控制在採用POST方法進行一次表單提交中PHP所能夠接收的最大數據量。似乎不大 可能需要將默認的8 MB改得更大。相反,應當適當將其降到更爲實際的數值。但如果希望使用PHP文件上傳功能,則需要將此值改爲比upload_max_filesize還 要大。

   post_max_size = 8M

   5:max_input_time

   此變量可以以秒爲單位對通過POST、GET以及PUT方式接收數據時間進行限制。如果應用程序所運行環境處在低速鏈路上,則需要增加此值以適應接收數據所需的更多時間。

   max_input_time = 90

   6:memory_limit

   memory_limit = 8M

   爲了避免正在運行的腳本大量使用系統可用內存,PHP允許定義內存使用限額。通過memory_limit變量來指定單個腳本程序可以使用的最大內存容量

   變量memory_limit的值應當適當大於post_max_size的值

   如何實現php大文件上傳:

   一個簡單的配置例子,大家可以參考下:

   打開php.ini,首先找到

   file_uploads = on ;是否允許通過HTTP上傳文件的開關。默認爲ON即是開

   upload_tmp_dir ;文件上傳至服務器存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾

   upload_max_filesize = 8m ;望文生意,即允許上傳文件大小的最大值。默認爲2M

   post_max_size = 8m ;指通過表單POST給PHP的所能接收的最大值,包括表單裏的所有值。默認爲8M

   一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網絡正常的情況下。

   但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。除非你的網絡真有100M/S的上傳高速,否則你還得關心關心下面的參數

   max_execution_time = 600 ;每個PHP頁面運行的最大時間值(秒),默認30秒

   max_input_time = 600 ;每個PHP頁面接收數據所需的最大時間,默認60秒

   memory_limit = 8m ;每個PHP頁面所吃掉的最大內存,默認8M

   把上述參數修改後,在網絡所允許的正常情況下,就可以上傳大體積文件了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章