Man*_*uru 1 javascript ajax jquery file-upload
如何在JQuery中获取文件上载的进度,以便我可以更新有关文件上载的状态栏.
下面是我在JQuery中使用Ajax的文件上传代码:
$('button').click(function(e) {
var formData = new FormData($('#myform')[0]);
$.ajax({
url: 'FileUploadExample',
type: 'post',
data: formData,
async: true,
cache: true,
contentType: false,
processData: false,
success: function(returndata) {
}
});
});
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索这个问题时,我浏览了jquery.form.min.js插件,它有选项uploadProgress.
如何在不使用JQuery/JavaScript中的任何插件的情况下获得上传进度.
使用JQuery xhr元素,就像这样
var formData = new FormData($('#myForm')[0]);
$.ajax({
url: url,
type: 'POST',
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',progressHandlerFunction, false);
}
return myXhr;
},
data: formData,
cache: false,
contentType: false,
processData: false
});
Run Code Online (Sandbox Code Playgroud)
并且在progressHandlerFunction中你可以访问e.loaded和e.total这样的进度
progressHandlerFunction(e)
{
console.log(e.total+""+e.loaded);
}
Run Code Online (Sandbox Code Playgroud)
$ .ajaxSettings.xhr(); 是真正的XMLHttpRequest元素,在本机JS中,您可以在XMLHttpRequest.upload onProgress事件上绑定处理程序,然后您可以获取event.total和event.loaded,每次event.loaded更改值时都会触发progress事件.
你可以用这个2做任何事情,你可以通过这样做来获得百分比
var percent=Math.round((event.loaded/event.total) * 100); 并相应地调整你的加载条宽度.
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |