PHP如何通過表單直接提交大文件詳解
前言
我想通過表單直接提交大文件,django 那邊我就是這么干的。而對于 php 來說,我認(rèn)為盡管可以設(shè)置最大上傳的大小,但最大也無法超過內(nèi)存大小,因為它無法把文件內(nèi)容都放到 php://input 里面。直到我試了一下。
下面話不多說了,來一起看看詳細(xì)的介紹吧
試驗
我創(chuàng)建內(nèi)存 256M 的虛擬機,通過表單直接上傳 2.4G 的文件,發(fā)現(xiàn)居然可以,挺驚訝的:

后端是 nginx + php 的方式。反正有關(guān) php.ini 里面需要設(shè)置的給它足夠大:
# pip.ini post_max_size = 100000M upload_max_filesize = 100000M
nginx 在 http 塊中添加:
# nginx.conf client_max_body_size 100000m;
難道 PHP 進(jìn)化了?我把其他版本試了一下,發(fā)現(xiàn) PHP7.0 及其以上的才能成功,5.6 的就不行了,請求會中斷 。
PS : php5 不能上傳大文件是因為 32 位的鍋,導(dǎo)致上傳大于 2G 的文件會有問題。
文件 4G 多的時候又不行了,不知道哪里還需要設(shè)置:
![]() |
改用apache試試
apache 我得用本地的 wamp 來。httpd.conf 需要設(shè)置:
# httpd.conf LimitRequestBody 83886080000
apache 版本,一樣得7.0以上才能直接上傳大文件,但apache可以上傳 4G 多的文件,不清楚為什么,難道因為我本地的內(nèi)存比較大?
![]() |
本機內(nèi)存 8G ,于是我試了上傳個 25G 的文件,也是沒問題的:

可以可以,很好很強大。
總結(jié)
我第一個感覺就是 php 變強了,既然能這么方便上傳大文件了,在沒有要求進(jìn)度條的需求里,就可以這么來做了,還蠻方便的。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
關(guān)于Appserv無法打開localhost問題的解決方法
安裝了Appserv時,無法打開http://localhost或是http://127.0.0.1 下面的具體的解決方法,大家可以參考下。多注意看下端口占用問題。2009-10-10
PHP正則驗證字符串是否為數(shù)字的兩種方法并附常用正則
今天小編就為大家分享一篇關(guān)于PHP正則驗證字符串是否為數(shù)字的兩種方法并附常用正則,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02



