Heim > Artikel > Backend-Entwicklung > PHP上传问题总结(文件大小检测,大文件上传)
背景:测试人员提出在Html里一次性上传传了个8G文件,为何接口没有立即返回超过限定大小了,这块Html5里有对文件大小作限定,之前也有浏览器也提出过类似问题,接收方但目前如果采用一次性Post目前的PHP上传是没有办法立即通过分析Http协议的content-lenth告诉浏览器,你超了,目前都是通过http上传的httpBody,如Nginx这块配置一下大小,PHP里也配置一下大小进行拦截,测试的这种想法是好,目前但没法实施,除非你用断点上传且得在H5的浏览器的帮助下进行浏览器过滤一次,服务端再过滤一次才可行。
由于涉及到本地和服务器两方面的安全问题,所以基于input type="file"形式的页面文件上传一直处于一个很尴尬的位置。一方面,用户不希望隐私泄露,所以浏览器无法对用户在上传时选择的文件做有效的判 断。另一方面,为了服务器端的安全,减轻传输负担,系统又希望能在用户开始上传之前就将非法的文件拒之门外。
一来一去,基于原始input方式的上传,成为网络存储网站避之唯恐不及的遗留性问题,也造就了现在千奇百怪的插件、上传客户端。
input方式的上传就如此之差么?当然不是。上传文件不大的时候,它还是非常简单可靠的,在PHP中,我们只需要一个复合型表单