【发布时间】:2014-04-30 20:45:07
【问题描述】:
我正在使用 jquery 文件上传 (http://blueimp.github.io/jQuery-File-Upload/) 插件。
我的代码:
$('#fileupload').fileupload({
url: 'server/index.php',
dataType: 'json',
dropZone: $('#dropzone'),
}).bind('fileuploadprogress', function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('.progress-bar').css('width', progress + '%');
});
当我进行文件上传时,进度条非常不准确。每次上传,无论文件大小,进度条都会一直停留在10%左右,直到文件上传完成,然后直接上到100%。
为什么会这样?如何修复它以正确显示进度?
谢谢。
【问题讨论】:
-
您正在测试的文件有多大,您是否在远程而不是本地进行了测试,因为带宽 == 磁盘访问带宽,文件将立即上传到本地。
-
@thetrompf 是的,起初我在本地进行测试。感觉一切都很完美。但是,当我尝试使用托管服务器时,我遇到了问题中描述的问题。
-
您使用的是哪个浏览器和网络服务器?
-
@thetrompf Firefox 和 Dreamhost。也用 IE 11 测试过,也不准确。文件刚开始上传时,进度条立即从 0% 变为 100%。
-
您正在测试的文件的大小是多少?进度回调是基于时间间隔调用的,如果在小文件上调用的频率不够高,它似乎会立即从 0 变为 100,或者您可能只是使用了太小的文件而无法满足您的带宽。所以文件会在第一个fileprogress回调被调用之前上传。
标签: javascript jquery jquery-file-upload