PHP如何通過表單直接提交大文件詳解
前言
我想通過表單直接提交大文件,django 那邊我就是這么干的。而對于 php 來說,我認(rèn)為盡管可以設(shè)置最大上傳的大小,但最大也無法超過內(nèi)存大小,因?yàn)樗鼰o法把文件內(nèi)容都放到 php://input 里面。直到我試了一下。
下面話不多說了,來一起看看詳細(xì)的介紹吧
試驗(yàn)
我創(chuàng)建內(nèi)存 256M 的虛擬機(jī),通過表單直接上傳 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 不能上傳大文件是因?yàn)?32 位的鍋,導(dǎo)致上傳大于 2G 的文件會有問題。
文件 4G 多的時(shí)候又不行了,不知道哪里還需要設(shè)置:
![]() |
改用apache試試
apache 我得用本地的 wamp 來。httpd.conf 需要設(shè)置:
# httpd.conf LimitRequestBody 83886080000
apache 版本,一樣得7.0以上才能直接上傳大文件,但apache可以上傳 4G 多的文件,不清楚為什么,難道因?yàn)槲冶镜氐膬?nèi)存比較大?
![]() |
本機(jī)內(nèi)存 8G ,于是我試了上傳個(gè) 25G 的文件,也是沒問題的:
可以可以,很好很強(qiáng)大。
總結(jié)
我第一個(gè)感覺就是 php 變強(qiáng)了,既然能這么方便上傳大文件了,在沒有要求進(jìn)度條的需求里,就可以這么來做了,還蠻方便的。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
關(guān)于Appserv無法打開localhost問題的解決方法
安裝了Appserv時(shí),無法打開http://localhost或是http://127.0.0.1 下面的具體的解決方法,大家可以參考下。多注意看下端口占用問題。2009-10-10淺析PHP頁面局部刷新功能的實(shí)現(xiàn)小結(jié)
本篇文章是對PHP頁面局部刷新功能的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php PDO實(shí)現(xiàn)的事務(wù)回滾示例
這篇文章主要介紹了php PDO實(shí)現(xiàn)的事務(wù)回滾功能,結(jié)合具體實(shí)例形式分析了php基于PDO操作實(shí)現(xiàn)事務(wù)回滾功能的相關(guān)SQL語句與操作技巧,需要的朋友可以參考下2017-03-03PHP正則驗(yàn)證字符串是否為數(shù)字的兩種方法并附常用正則
今天小編就為大家分享一篇關(guān)于PHP正則驗(yàn)證字符串是否為數(shù)字的兩種方法并附常用正則,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02