【问题标题】:PHP: Uploading large files failPHP:上传大文件失败
【发布时间】:2011-05-04 05:50:18
【问题描述】:

我很困惑...我似乎无法上传 2gb 范围内的文件。当我尝试使用 curl 将 1.92gb 文件发送到我的站点(通过 API)时,它根本不报告任何内容,它只是空白。当我发送一个 1kb 的文件时,它会按原样返回。

当我尝试通过上传表单上传时,它最终在中途冻结,大约 33%。虽然我不确定是否只有进度条冻结了,或者它本身的实际文件上传是否已暂停。我怀疑只有进度条冻结了,因为即使进度条冻结,它仍然表示正在发送数据。

我的 php.ini(是的,它也反映在 phpinfo 中):

register_globals = Off
magic_quotes_gpc = Off
post_max_size = 2047M
upload_max_filesize = 2047M
max_execution_time = 25200     ; Maximum execution time of each script, in seconds
max_input_time = 25200  ; Maximum amount of time each script may spend parsing request data
memory_limit = 2048M      ; Maximum amount of memory a script may consume (16MB)
short_open_tag = On 

我的 vps 实际上并没有 2gb 的内存可供使用,但是 memory_limit 真的需要设置这么高吗?

我应该如何进行测试?我知道 400mb 文件可以工作,我还没有测试过 400mb 和 1.92gb 之间的任何东西

您将需要一个高级帐户来测试高达 2GB 的容量,因此您可以使用以下帐户:

用户:testreferral

通过:1234

http://filefx.com

我不明白这个问题出在哪里。

【问题讨论】:

  • 这可能是底层文件系统的问题。在SO上搜索,我很确定它已经讨论过很多次了
  • 我应该在搜索中包含哪些关键字?
  • linuxmafia.com/faq/VALinux-kb/2gb-filesize-limit.html 获取关于该主题的非 SO 链接
  • 我很确定这不是文件系统问题,因为我可以创建 2gb+ zip 文件没问题
  • 没有什么明显的错误。检查您的错误日志或 php 错误日志中是否有任何内容。

标签: php post curl upload ini


【解决方案1】:

检查:

  1. 内存限制。尝试上传高于和低于实际内存限制的文件。
  2. 时间限制。您的上传时间不会超过 7 小时吧?
  3. 有效设置。某些设置可能会被服务器/等设置覆盖。

【讨论】:

    【解决方案2】:

    PHP: mysql query skipped/ignored after large file uploads?

    Mysql 在文件上传期间超时。所以文件没有出现在数据库中

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 2012-05-31
      • 2012-07-24
      • 2023-04-02
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 2023-01-22
      • 2017-11-06
      相关资源
      最近更新 更多