PHP实现大文件上传和下载

一提到大文件上传,首先想到的是啥???

没错,就是修改php.ini文件里的上传限制,那就是upload_max_filesize。修改成合适参数我们就可以进行愉快的上传文件了。当然啦,这是一般情况下的操作,咱们可以考虑下50M的话,这样修改还好使么???

结果不言而喻,如果不信邪的看官可以动手试下。那么这时候我们就要考虑了,为什么会失败呢?通过错误提示或者正常思维来思考的话,我们首先想到的是,这个文件到底有没有被上传到服务器上呢?

嘿嘿,到这里我们就应该知道,限制在哪里了。没错就是表单上传的大小受到了限制。这时候我们就要修改php.ini里的post_max_size参数了。

到这里呢,在网络正常的情况下,基本上不会出现什么问题了。但是,你懂得,我们作为一名programer,怎么可能对非正常情况没有准备。

这时候我们就要修改php运行最大时间max_execution_time还有php接收数据所需的最大时间max_input_time再来就是最大内存memory_limit这三个参数了。修改为适合自己的程序的数值,就可以畅快的运行了。

还有万一中的情况,你的大文件上传程序没有成功运行的话,各位不妨考虑下服务器的限制。我用的Nginx,所以我在我的配置文件中修改了client_max_body_size这个参数。这是用来限制客户端上传文件大小的。

好啦,到这里呢,大部分情况下的文件上传应该都可以解决了。如果还是有问题的话,各位,请与我私信,大家共同解决。如果感觉不错的话,请多多点赞支持哦。。。

SQL脚本:

http://bbsres2.ncmem.com/ff8cf2d6.png

单个文件上传

http://bbsres2.ncmem.com/74d57aa3.png

存储路径

http://bbsres2.ncmem.com/2d4b28ee.png

数据库数据

http://bbsres2.ncmem.com/d80e3012.png

数据库数据(多个文件及文件夹)

http://bbsres2.ncmem.com/6769872d.jpg

文件和文件夹批量下载

http://bbsres2.ncmem.com/8ccb5b0d.jpg

文件和文件夹下载断点续传

http://bbsres2.ncmem.com/eb5b1b6b.jpg

效果:

http://bbsres2.ncmem.com/7cebc171.jpg

文件和文件夹批量上传

http://bbsres2.ncmem.com/202d5f59.png

参考文章:http://blog.ncmem.com/wordpress/2019/08/12/java-http%E5%A4%A7%E6%96%87%E4%BB%B6%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0%E4%B8%8A%E4%BC%A0/