如何解决如何使用 asp.net mvc 控制器和 javascript 显示上传进度
我见过很多使用 javascript 上传文件并显示进度指示器的示例,例如下面的代码。
function uploadFile() {
var fileInput = document.getElementById('new-file');
if (fileInput.files.length > 0) {
var bar = $("#upload-progress-bar span");
var file = fileInput.files[0];
var xhr = new XMLHttpRequest();
if (xhr.upload) {
xhr.upload.addEventListener("progress",function (e) {
if (e.lengthComputable) {
var pc = parseInt(100 - (e.loaded / e.total * 100));
console.log(pc);
bar.css("width",pc + "%");
}
});
xhr.onreadystatechange = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
$("#attachment-list").append("<li>" + file.name + "</li>");
} else {
alert("File didn't upload properly");
}
}
};
$("#upload-progress-bar").show();
xhr.open("POST","/ToDos/AttachToProject/",true);
xhr.setRequestHeader("Content-Type","multipart/form-data");
xhr.setRequestHeader("X-File-Name",file.name);
xhr.setRequestHeader("X-File-Size",file.size);
xhr.setRequestHeader("X-File-Type",file.type);
xhr.send(file);
}
}
}
当我运行这个时,对于 console.log(pc);我在控制台中得到 36 和 0 行。即使我上传了一个大约需要 10 秒才能上传的 10mb 文件,但我似乎从未获得准确的进度量。它总是只有 36 和 0。所以我开始怀疑是不是因为在 .net 中服务器没有报告任何进度。不确定您是否必须设置某个服务器才能使其正常工作。我在 2011 年遇到 this article,想知道它是否仍然准确。如果没有,你如何让这个脚本与 .net mvc 控制器一起工作以获取上传进度量?谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。