PHP上传大文件失败的原因及对策
上传一个大文件总是失败的,但是上传一个小文件并不是问题。小编辑无法解决它,在线搜索它的原因,整理了一篇关于PHP上传失败的大文件和解决方案的文章,分享给大家。以下是原因和解决办法:
第一种情况:必须打开文件存储的临时目录,PHP进程所有者用户在上传文件时可以编写一个目录。
在php.ini文件,upload_tmp_dir是用来解释临时文件放在PHP上传。如果要上载文件,必须确保服务器不关闭临时文件并向文件夹写入权限。
案例二:max_execution_time的值必须足够大,变max_execution_time设置脚本之前等待脚本的被迫终止脚本的执行时间,是以秒计算的。这个变量是非常有用的脚本时,进入一个无限循环的状态。然而,当有一个正当需要完成的活动有很长的一段时间(例如,上传一个大文件),这个功能也可以导致一个失败的操作。在这种情况下,我们必须考虑增加该变量的值以避免,PHP将关闭脚本脚本时,例如执行一些重要的过程,设置为90秒。
max_execution_time = 90
注意在PHP函数有一个set_time_limit功能,这是上面的设置相同。它们之间的区别是,以上是在php.ini文件中,而set_time_limit写在PHP文件,你也可以通过set_time_limit在页面设置最长执行时间不受限制,如:(0)set_time_limit;
第三种情况:其file_uploads =默认值时,这意味着允许文件被上传通过HTTP,而这个选项不能设置为关闭。
第四:对upload_max_filesize = 2m上传文件大小的最大值,在2M的php.ini配置文件默认的文件上传大小,错误PHP初学者使通过窗体区域设置文件的最大大小的文件上传功能,最大值是允许上传的文件,max_file_size(隐藏的值范围)一般指定的文件大小,则可以绕过这个值,所以为了安全起见,最好是在php.ini配置文件中配置的upload_max_filesize选项,她Dingwen上传大小。默认upload_max_filesize=2m,即上传文件大小为2M,如果你想上传超过800万文件,这样为20M,你必须设置upload_max_filesize = 20m。
第五种情况:post_max_size的值必须足够大,这个变量是一个表单提交相关的变量,这限制了最大的数据量,PHP程序时可能接收的形式是通过POST方法提交。一般来说,这个值是略微超过upload_max_filesize,为例如,上传一个20MB的文件,可设置21mb。
第六种情况:max_input_time这个变量可以限制在几秒钟内通过后,接收数据时得到的,而放。如果应用程序的运行环境是缓慢的,需要增加这个值会增加需要接收数据的时候,如将该值设置为90秒。
max_input_time = 90
第七种情况是,memory_limit也必须足够大。为了避免内存被大量使用运行脚本,PHP允许定义内存的使用限制,memory_limit变量用来指定最大内存容量,一个脚本可以使用的变量的值。memory_limit应适当大于的post_max_size价值。
另第八例:如果您的主机是nginx的操作系统,如果以上都不够,记得在nginx的配置文件中添加client_max_body_size 20m;这样的一句话,这是允许上传20mb最大,具体根据自己的情况。我的nginx配置文件位于 / usr /地方 / / / nginx.conf nginx的配置。
在阅读本文之后,您应该知道为什么大文件无法上传。希望本文能为您更好地解决类似问题提供一些思路。