使用Mozilla Mobile使用XHR发送多张图片时出错

时间:2018-11-16 13:33:26

标签: javascript asp.net webforms xmlhttprequest

嗨,我有一个网站,人们可以在其中一个页面中使用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。

如果有人在这件事上能帮助我,我将不胜感激

0 个答案:

没有答案