【问题标题】:php uploading large filesphp上传大文件
【发布时间】:2012-07-20 09:10:22
【问题描述】:

我被文件上传问题困在这里。我已经搜索了答案,但只找到了“增加 post_max_size 和 upload_max_filesize”的建议,这对我不起作用。我无法上传大文件(大约 150mb+),以下是我的 php.ini 设置和环境

php.ini

 - max_input_time 300
 - max_execution_time 600
 - memory_limit 1024M
 - upload_max_filesize 1512M
 - post_max_size 2048M

环境

 - Webserver: XAMPP
 - PHPFramwork: CodeIgniter

我还尝试了许多其他 php.ini 配置。我构建的文件上传类使用 xhr.send(file) 从 XmlHttpResponse 请求中接收发布的文件数据。我用firebug头调试过的信息是正常的,post完全是空的(通常应该是文件数据,一个不可读取的文本),cookies是ci_session cookies,根本没有xhr响应文本。不过,我已经编写了一个脚本,无论如何都会返回一些响应。

我不是这方面的专家,而是新手。我可以提供给你们的所有信息。那么,有什么想法吗?我真的被困在这里无法解决这个问题。

如果有任何信息我可以查找并提供给您以解决此问题,请告诉我。

提前谢谢。

【问题讨论】:

  • 你有没有尝试增加webserver的TimeOut指令?默认值为 300 秒。检查here 以获取文档。
  • 您也可以将set_time_limit(0); 添加到您的控制器方法中。

标签: php upload large-files


【解决方案1】:

改为使用标准格式上传尝试使用 xhr 对象上传(如您所说)但使用文件块方法将文件发送到服务器,从理论上讲,您应该没有上传限制。试试这个也提供 php 脚本的上传 jquery 插件:

http://code.google.com/p/ax-jquery-multiuploader/ 删除,因为无法维持

新链接(免费): http://www.albanx.com/download.php?item_id=4

文档: http://www.albanx.com/ajaxuploader/doc.php

【讨论】:

  • 在这种情况下,最好在答案中提供更多信息。给定的链接现在似乎已失效。
【解决方案2】:

如果您要上传非常大的文件,例如几 GB,那么实际上存在浏览器端的限制。似乎大多数现代浏览器都是2GB - 4GB。您可能应该考虑对文件上传进行分块(一次上传几 MB 的文件部分)。

【讨论】:

  • 在寻找解决方案数小时后,我决定使用文件分块。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 2015-01-23
  • 2011-09-13
  • 1970-01-01
相关资源
最近更新 更多