blueimp fileupload - 不会触发进度

时间:2017-06-12 08:02:59

标签: javascript jquery file-upload blueimp jqxhr

我有一个非常简单的上传脚本,但它不会触发进度。它只触发progress方法一次,当文件完成时,它会触发complete并打印{{1 }}

done!

还尝试上传较大的文件,但Chrome 58.0.3029.110 (64-bit) Firefox 53.0.3 (32-bit) 方法仅触发一次

https://github.com/blueimp/jQuery-File-Upload

测试

http://dyndev.dk/upload/

progress

2 个答案:

答案 0 :(得分:0)

它适用于我在同一个Firefox 53.0.3中。也许您的问题是您在本地上传,所以它太快而无法显示任何进展?

即使是远程,我也只有三次调用才能获得10MB文件。

尝试使用其他连接,或限制上传速度。

答案 1 :(得分:0)

我认为您的测试方案无效的原因是默认的块大小为10 MB。

您还可以尝试" fileuploadprogress" -Event:https://github.com/blueimp/jQuery-File-Upload/wiki/Extended-progress-information

否则你可以使用chucked上传。但这仅适用于serval浏览器。这是指定" maxChunkSize"的关键。然后触发其他回调:

$('#fileupload').fileupload({maxChunkSize: 100000})
    .on('fileuploadchunksend', function (e, data) {})
    .on('fileuploadchunkdone', function (e, data) {})
    .on('fileuploadchunkfail', function (e, data) {})
    .on('fileuploadchunkalways', function (e, data) {});

在这里,您可以尝试将maxChunkSize减少到5000(500 KB) - 但仅适用于您的测试场景。在生产环境中,你应该使用更大的块大小。

https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads

当用户能够为上传选择多个文件并且您想要告知他每个文件上传的进度时,您可以使用" fileuploadprocessalways" -event。