【发布时间】: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