gpt4 book ai didi

javascript - 如何在ajax post中获取文件上传的状态

转载 作者:行者123 更新时间:2023-12-03 12:24:00 24 4
gpt4 key购买 nike

使用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等......

谁能帮我解决这个问题吗?

最佳答案

我认为您的问题没有默认方式。您正在查找的信息 - 上传了多少文件 - 未存储在 XMLHttpRequest 中根据我的知识,对象。

我想(但从未尝试过)您可以为其创建一些自定义内容。 高级分析:跟踪服务器端的上传进度。在数据库中存储一些有关上传的信息:要处理的文件数量、已处理的文件数量、日期/时间、唯一的上传/ session ID。当您中止上传或上传失败时,您可以根据唯一 ID 通过 ajax 从数据库检索有关上传过程的信息,并将其显示在 UI 中。

注意:如果请求已经发送到服务器,那么即使我们中止请求,服务器也会处理该请求,但客户端不会等待/处理响应。

希望这有帮助。

关于javascript - 如何在ajax post中获取文件上传的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com