你好我是非常新的PHP,我已经创建了一个表格,用于将非常大的csv文件上传到我的服务器。有人向我提到,由于上传文件很大,浏览器可能会超时,这是真的吗?如果是的话,可以预防吗?
感谢您的帮助!
答案 0 :(得分:56)
您需要以下php.ini设置的正确值:
也许
答案 1 :(得分:30)
如果某些配置指令的值太小,可能会导致大型上传失败:
PHP
max_input_time
允许脚本解析输入数据的最长时间(以秒为单位),如POST,GET和文件上传upload_max_filesize
上传文件的最大尺寸。post_max_size
允许的最大发布数据大小。的Apache
TimeOut
服务器在请求失败前等待某些事件的时间LimitRequestBody
限制从客户端发送的HTTP请求正文的总大小可能还有更多。
答案 2 :(得分:5)
解决PHP中大文件上传的糟糕处理的一个好方法是使用像JUpload这样的上传器,它会在发送之前将文件拆分成块。这也有利于您的用户在上传时获得正确的进度反馈,并且他们可以一次上传多个文件。
答案 3 :(得分:3)
上传非常大的文件时,您必须更改4个配置变量:
upload_max_filesize
post_max_size
memory_limit
time_limit
使用set_time_limit()可以在运行时增加时间限制。
答案 4 :(得分:2)
默认情况下,允许脚本运行30秒。您可以使用set_time_limit() function来改变它。此外,如果您的用户需要上传大文件,则需要更改php.ini文件中的post_max_size和/或upload_max_filesize值。
另外,如果您只想全局扩展超时限制,可以在php.ini中更改max-execution-time。
答案 5 :(得分:1)
是的,这是真的。文件上传是通过POST请求完成的,一般请求都会超时。您应该能够重新配置环境以获得更长的请求超时。
答案 6 :(得分:1)
不只是超时会导致问题。可以上载的文件的最大大小有一些限制。可以在php.ini文件中更改这些限制:
的post_max_size
的upload_max_filesize
memory_limit的
查看http://uk.php.net/ini.core了解详情。
答案 7 :(得分:1)
我的回答与您的原始问题没有直接关系,但如果您在PHP脚本前面有反向代理负载均衡器,则负载均衡器可能会超时或阻止大量上传。如果支持文件上载,请始终检查负载均衡器的配置。就像PHP一样,大多数负载均衡器上传的默认设置都很小。
答案 8 :(得分:1)
我能够使用以下设置解决此问题,您可以使用不同的值,但您明白了:
对于我的服务器,我将这些行放在脚本目录中的“.user.ini”文件中,如果在服务器上执行phpinfo('user_ini.filename'),服务器可能会查找不同的文件会吐出你需要把你的值放在
中的文件max_execution_time = 1800
max_input_time = -1
post_max_size = 100M
upload_max_filesize = 100M
memory_limit = 256M
答案 9 :(得分:0)
如果更改上述任何参数似乎没有任何区别,可能是某个地方的html表单包含名称MAX_FILE_SIZE作为隐藏字段。
book
在上面的示例中,任何超过10MB的文件都不会上传。
答案 10 :(得分:-1)
这正是您在这里遇到的问题的解决方案,Sserver超时等待来自客户端的HTTP请求。这意味着您将请求从https://发送到https://,浏览器说正在等待http请求,因此您必须将请求从https://发送到http://。在可能的情况下,此解决方案有效。
答案 11 :(得分:-1)
是的,如果您尝试在服务器上上传大型文件。您的文件执行时间有限,因此无法上传。因此,您需要配置php.ini文件。
注意:-根据您的选择进行更改 upload_max_filesize: post_max_size
这会有所帮助