【问题标题】:Jquery ajax fileupload is not working in IE9 standard?Jquery ajax fileupload 在 IE9 标准中不起作用?
【发布时间】:2015-01-23 20:57:00
【问题描述】:

文件上传在任何地方都可以使用,例如 chrome、IE10 等。但是当我的 QA 在 IE9 中测试时,它失败了。动作控制器获取 Request.Files 是 '0' 长度的文件。

是IE9有问题还是我的代码有问题?

function initSimpleFileUpload() {
            console.log("initSimpleFileUpload");              
            $('#fileupload').fileupload({
                url: '../admin/image/uploadfiles',
                dataType: 'json',
                acceptFileTypes: /^image\/(gif|jpeg|png|svg\+xml)$/,
                add: function(e, data) {
                    jqXHRData = data;
                },
                done: function(event, data) {

                },
                success: function(data, status, xhr) {
                    // console.log(data);
                    // console.log(data.url);
                    if (data.message == "false") {
                        //alert("filename already exists");
                        $("#oops_dialog").html("@Html.Raw(i18n_Models_Image.ImageFileExists)");
                        $("#oops_dialog").dialog("open");
                    }
                    else if (data.message == 'checksumExists') {
                        $("#oops_dialog").html("@Html.Raw(i18n_Models_Image.ImageCheckSumSame)");
                        $("#oops_dialog").dialog("open");
                    }
                    else if (data.message == 'fileTagNotExists') {
                        $("#oops_dialog").html("@Html.Raw(i18n_Models_Image.ImageTagTextBox)");
                        $("#oops_dialog").dialog("open");
                    }
                    else if (data.message == 'unexpectedError') {
                        $("#oops_dialog").html("@Html.Raw(i18n_Models_Image.ImageUploadUnexpectedError)");
                        $("#oops_dialog").dialog("open");
                    }
                    else if (data.message == 'fileTagSame') {
                        $("#oops_dialog").html("@Html.Raw(i18n_Models_Image.ImageSameFileTagNotAllowed)");
                        $("#oops_dialog").dialog("open");
                    }
                    else if (data.message == "success") {
                        window.location = data.url;
                    }
                },
                fail: function(event, data) {
                    if (data.files[0].error) {
                        alert('@i18n_Models_Image.UploadCancelled');
                    }
                }
            }).on('fileuploadprogressall', function(e, data) {
                var progress = parseInt(data.loaded / data.total * 100, 10);
                $('.progress .progress-bar').css('width', progress + '%');
            });
        }


$('#fileupload').on('change', function(e) {
                if ($('#fileupload').length > 0) {
                    $('#lnkUploadSubmit').attr('disabled', false);
                    $('#divFileName').show();
                    $('.progress').show();
                } else {
                    $('#lnkUploadSubmit').attr('disabled', true);
                    $('#divFileName').hide();
                    $('.progress').hide();
                };
            });
            $('#fileupload').on('click', function(e) {
                console.log("click");
                $('#lnkUploadSubmit').attr('disabled', true);
                $('#divFileName').hide();
                $('#inputFileName').val('');

            });

控制器

 [HttpPost]
    [Route("Admin/Image/UploadFiles")]
    public ActionResult UploadFiles()
    {
        try
        {
            var files = Request.Files;
            //checking file types and file max size
            var errMsg = CheckFileTypesAndMaxSize(files);
            if (errMsg != "success")
            {
                Error(errMsg);
                return Json(new { message = "error", url = Url.Action("Index", "Image") }, JsonRequestBehavior.AllowGet);
            }

【问题讨论】:

    标签: javascript jquery ajax internet-explorer file-upload


    【解决方案1】:

    是的,我猜 IE 9 有问题。您需要提交表单才能将文件上传到服务器。 您可以在控制器中有一个方法,该方法将在页面提交时调用,该方法将具有类似这样的参数... HttpPostedFileBase 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多