文件可以在PHP中上传超时吗?

时间:2009-02-23 16:09:29

标签: php upload

你好我是非常新的PHP,我已经创建了一个表格,用于将非常大的csv文件上传到我的服务器。有人向我提到,由于上传文件很大,浏览器可能会超时,这是真的吗?如果是的话,可以预防吗?

感谢您的帮助!

12 个答案:

答案 0 :(得分:56)

您需要以下php.ini设置的正确值:

  1. max_input_time max_execution_time!)
  2. upload_max_filesize
  3. post_max_size
  4. 也许

    1. memory_limit

答案 1 :(得分:30)

如果某些配置指令的值太小,可能会导致大型上传失败:

PHP

的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

这会有所帮助

相关问题