我能够通过 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”参数监控这些。
对您有帮助的链接
关于php - 使用 Jquery BlueImp uploader 上传大文件后出现延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219726/