修改PHP上傳文件限制的方法
時(shí)間:2022年3月9日
瀏覽:次
1. 一般的文件上傳,除非文件很小.就像一個(gè)5M的文件,很可能要超過(guò)一分鐘才能上傳完.
但在php中,默認(rèn)的該頁(yè)最久執(zhí)行時(shí)間為 30 秒.就是說(shuō)超過(guò)30秒,該腳本就停止執(zhí)行.
這就導(dǎo)致出現(xiàn) 無(wú)法打開(kāi)網(wǎng)頁(yè)的情況.這時(shí)我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認(rèn)是30秒.改為
max_execution_time = 0
0表示沒(méi)有限制
2. 修改 post_max_size 設(shè)定 POST 數(shù)據(jù)所允許的最大大小。此設(shè)定也影響到文件上傳。
php默認(rèn)的post_max_size 為2M.如果 POST 數(shù)據(jù)尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會(huì)為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會(huì)改了第二步.但上傳文件時(shí)最大仍然為 8M.
為什么呢.我們還要改一個(gè)參數(shù)upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認(rèn)為8M改為
upload_max_filesize = 100M
另外要說(shuō)明的是,post_max_size 大于 upload_max_filesize 為佳.
4.上傳報(bào)413錯(cuò)誤,
產(chǎn)生該錯(cuò)誤的原因,客戶端發(fā)送的實(shí)體主體部分比服務(wù)器能夠或者希望處理的要大。 一般情況下我們看不到這個(gè)狀態(tài)碼。 因?yàn)闉g覽器不會(huì)發(fā)送太大的數(shù)據(jù)給網(wǎng)站,但是服務(wù)器間的接口交互可能會(huì)出現(xiàn)該問(wèn)題。
nginx出現(xiàn)這個(gè)問(wèn)題的原因是請(qǐng)求實(shí)體太長(zhǎng)了。一般出現(xiàn)這種情況是Post請(qǐng)求時(shí)Body內(nèi)容Post的數(shù)據(jù)太大了,如上傳大文件過(guò)大、POST數(shù)據(jù)比較多。
解決方法:
打開(kāi)nginx主配置文件nginx.conf,找到http{}段,修改或者添加 client_max_body_size 的值
client_max_body_size 20m;