Fileupload可以在任何地方工作,如chrome,IE10等。但是当我在IE9中测试My QA时,它失败了。动作控制器得到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);
}
答案 0 :(得分:0)
是的我猜想IE 9出了问题。您需要提交表单以将文件上传到服务器。 你可以在控制器中有一个方法,它将在页面提交时调用,这个方法将有一个像这样的参数... HttpPostedFileBase文件