宝哥软件园

php无法上传大文件的原因及对策

编辑:宝哥软件园 来源:互联网 时间:2021-09-30

为什么总是上传大文件失败,上传小文件却没有问题?边肖也看不懂,在网上搜索原因,整理了一篇关于php上传大文件失败的原因和解决方法的文章,分享给大家。

这里有各种原因和解决方法:案例一:上传文件时存放文件的临时目录必须是PHP进程所有者和用户都可以打开和写入的。如果未指定,PHP将使用系统默认值。PHP.ini文件中的Upload_tmp_dir用来描述放置PHP上传的文件的临时目录。要上传文件,必须确保服务器不会关闭临时文件,并且对文件夹具有写权限。

场景max _ execution _ time的值必须足够大。变量max_execution_time设置PHP在强制终止脚本之前等待脚本完成执行的时间,以秒为单位计算。当脚本进入无限循环状态时,这个变量非常有用。但是,当有需要很长时间才能完成的合法活动(如上传大文件)时,该功能也会导致操作失败。在这种情况下,我们必须考虑增加变量值,以避免PHP在执行一些重要进程时关闭脚本,例如,将其设置为90秒。Max_execution_time=90请注意,在php函数中还有一个set_time_limit函数,其功能与上述设置相同。两者的区别在于上面的设置是在php.ini文件中,而set_time_limit是在php文件中编写的。因此,也可以在页面中使用set_time_limit设置程序的最长执行时间,如无限制,即set _ time _ limit(0);

场景3:文件上传=开启。默认值为on,这意味着允许通过HTTP上传文件。此选项不能设置为关闭。

第四种情况:upload_max_filesize=2M设置最大文件上传大小,php.ini配置文件中默认文件上传大小为2M。php初学者容易犯的一个错误就是在编写文件上传函数时,设置了最大文件上传大小的表单区域,也就是最大允许文件上传量。Max_file_size(隐藏值范围)用于指定上传文件的大小。事实上,其他人可以绕过这个值。因此,为了安全起见,最好在php.ini配置文件中配置upload_max_filesize选项来设置上传文件的大小。默认情况下,上传文件大小=2M,即文件上传大小为2M。如果要上传8M以上的文件,比如20M,必须设置upload_max_filesize=20M。

场景post _ max _ size的值也必须足够大。这个变量也是一个与表单提交相关的变量,它限制了客户端通过POST方法提交表单时,PHP程序可以接收的最大数据量。一般来说,这个值可以设置得稍微大于upload_max_filesize,例如,要上传20MB的文件,这个值可以设置为21MB。

场景6: max_inPUT_time这个变量可以限制POST、GET和PUT接收数据的时间,以秒为单位。如果应用程序在慢速网络环境中运行,则有必要增加该值以增加接收数据所需的时间,例如,将该值设置为90秒。最大输入时间=90

场景memory _ limit也必须足够大。为了防止运行脚本大量使用可用的系统内存,PHP允许定义内存使用限制。使用memory_limit变量指定单个脚本程序可以使用的最大内存容量。变量memory_limit的值应该适当大于post_max_size的值。

场景八:另外,如果你的主机是nginx操作系统,如果以上操作全部失败,记得在nginx配置文件中添加client _ max _ body _ size 20m这样就意味着最大允许上传量是20MB,具体要看你自己的情况。我的nginx配置文件的位置在/usr/local/nginx/conf/nginx . conf。

看完这篇文章,你大概应该知道上传大文件失败的原因了。希望本文能为你更好地解决类似问题提供一些思路。

更多资讯
游戏推荐
更多+