嗨,我有一个网站,人们可以在其中一个页面中使用asp.net fileupload控制器选择一个或多个图像(在HTML中,它将是File类型的Input),当有人选择项目时,它将自动发送图像我创建来处理此问题的服务。这是我的JavaScript代码:
var fileuploader = '<%="#" + fileImages.ClientID %>';
document.querySelector(fileuploader).addEventListener('change', function (e) {
if (this.files.length > 0) {
$("#spImageError").hide();
var fd = new FormData();
for (var i = 0; i < this.files.length; i++) {
var file = this.files[i];
fd.append("file_"+i, file);
}
var xhr = new XMLHttpRequest();
xhr.open('POST', '/Services/HandleUpload.aspx', true);
xhr.onload = function () {
if (this.status == 200) {
}
else {
console.log(this.status);
$("#spImageError").show();
};
fd = new FormData();
document.querySelector(fileuploader).value = "";
$("#UpdProgress").hide();
$("#progressOuter").hide();
UpdateImagesUpadePanel();
};
xhr.send(fd);
$("#progressOuter").show();
}
}, false);
function UpdateImagesUpadePanel() {
<%=ClientScript.GetPostBackEventReference(UpdPanel, "")%>;
}
'#spImageError'是一个跨度标记,如果发生错误则显示错误。 此代码适用于PC上的所有浏览器,甚至适用于android手机上的chrome。 在Mozilla浏览器上,它只能处理1张图片,但无法发送几张图片。
当我调试已在服务器上运行的代码而不是多个文件时,服务器仅显示一个文件,其内容为空。因此,它将引发错误并返回除200以外的状态号,因此它会通过'#spImageError'span标签显示ErrorMessage。
如果有人在这件事上能帮助我,我将不胜感激