在使用ajax调用上传多个文件时,当用户点击取消时获取上传文件的状态。
这样我就可以调用ajax请求来上传文件:
var request = $.ajax({
url: 'files.php',
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
$(".progressbar").show();
},
xhr: function () {
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', showProgress, false);
}
return xhr;
},
success: function (data) {
if (percentComplete <= 100) {
$('#pb div').animate({
width: '100%'
}, {
step: function (now) {
$(this).text(Math.round(now) + '%');
},
duration: 10
});
}
$('#uplcomp').append(data);
}
});
如果用户点击取消按钮即可:
request.abort();
由于上述声明只是中止了ajax请求,我没有得到任何响应,例如上传了多少文件,上传了多少mb等等....
有人可以帮我吗?
答案 0 :(得分:1)
我不认为您的问题有默认方式。您要查找的信息 - 上传了多少文件 - 我的专业知识未将该信息存储在XMLHttpRequest对象中。
我想(但从未尝试过)你可以为它创建一些自定义的自定义。 高级别分析:跟踪上传进度服务器端。在数据库中存储有关上传的一些信息:要处理的文件数量,处理的文件数量,日期/时间,唯一上传/会话ID。当您中止上传或失败时,您可以根据唯一ID,通过数据库中的ajax检索有关上传过程的信息,并将其显示在用户界面中。
注意:如果请求已经发送到服务器,那么即使我们中止请求,服务器也会处理请求,但客户端不会等待/处理响应。
希望这有帮助。