php - 使用 Jquery BlueImp uploader 上传大文件后出现延迟

标签 php jquery file-upload blueimp

我能够通过 BlueImp Jquery Uploader 插件成功上传大文件(测试最大 8GB)。

我的 PHP 设置是:

upload_max_filesize 8192M
post_max_size 8192M
max_execution_time 200
max_input_time 200
memory_limit 8192M

我遇到的问题是,当大文件(2GB 或更大)完成上传时,进度条停留在 100% 并且需要相当长的时间才能“完成”。 除了将文件 block 拼凑在一起之外,我不确定发生了什么后处理。

我已经尝试调整 UploadHandler.php 文件中的 block 大小,似乎在增加时略有改善(例如,从 10mb 到 500mb block ),但延迟仍然存在。完全禁用分块上传时似乎没有任何改进 (0),而且我不确定这样做的潜在后果。

对于 2gb 的文件,延迟大约为 20 秒,但对于 4gb 的文件,延迟大约为 2 分钟。一个 7gb 的文件大约需要 3-4 分钟,有时会超时。这让用户等待,不知道发生了什么,因为此时进度条已完成 100%。

有没有人知道这可能是什么,或者如何解决它?我怀疑/tmp 中的文件可能被复制而不是被移动,但据我所知,在 php 文件中没有这种迹象。

提升我的服务器 VM 上的 CPU 和 RAM 会稍微改善一些情况,尽管在此过程中运行“top”命令会显示 CPU 和 RAM 似乎没有大量耗尽(0-2%,与 90-实际上传时为 100%)。

非常感谢。

最佳答案

我不太了解,我在谷歌上搜索并找到了一些,我想它可能对你有帮助。

通常当服务器或客户端发生异常时会触发“onError”事件。在上述情况下,在服务器本身没有超时之前不会抛出异常。

一种可能是监控上传状态并在上传事件中设置 JavaScript 超时或计数器,在达到时间限制后将取消上传。

此处显示所有上传状态和错误代码 - http://help.infragistics.com/NetAdvantage/jQuery/2013.1/CLR4.0?page=igUpload_Using_Client_Side_Events.html

您可以在上传事件中使用“fileStatus”参数监控这些。

对您有帮助的链接

  1. Link1
  2. Link2
  3. Link3

关于php - 使用 Jquery BlueImp uploader 上传大文件后出现延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219726/

相关文章:

javascript - 如何将 PHP 文件中的多个值回显到 Javascript Ajax 调用?

javascript - 有没有可能的方法将元标记(OPEN GRAPH)从服务器端 php 获取到 angularjs SPA 中?

php - 如何在 yii2 中刷新 pjax ListView ?它重新加载整个页面

javascript - 如何在 Javascript 中修改计算的字体大小

jquery - 使 TinyMCE 与 JEditable 正常工作

php - Smarty 和 gettext

javascript - 通过 src 值查找 img 标签并在 img 标签中添加新属性

html - 文件上传在 Windows 10 edge 浏览器中不起作用

上传文件时出现java.lang.NoSuchMethodError

javascript - php图片上传带水印并调整大小