解決PHP大文件上傳問題
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
把上述參數修改后,在網絡所允許的正常情況下,就可以上傳大體積文件了
關鍵字:數據、進程、網絡
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解