我正在使用带有MVC3 .NET的blueimp jQuery-File-Upload,我的控制器中有下一步操作。
[HttpPost]
public ContentResult UploadImageEditor(HttpPostedFileBase file)
{
if (file == null) return null;
string fileName = Path.Combine(Server.MapPath("~/Content/img/user"), file.FileName);
file.SaveAs(fileName);
return new ContentResult
{
ContentType = "text/plain",
Content = "/Content/img/user/" + file.FileName,
ContentEncoding = Encoding.UTF8
};
}
在我看来,我有:
<input id="fileupload" type="file" name="files[]" data-url="/Document/UploadImageEditor/" multiple>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="../../Content/jquery-ui-1.10.4/jquery-ui-1.10.4/ui/jquery.ui.widget.js"></script>
<script src="../../Content/jquery-ui-1.10.4/jquery.iframe-transport.js"></script>
<script src="../../Content/jQuery-File-Upload-9.5.4/jQuery-File-Upload-9.5.4/js/jquery.fileupload.js"></script>
<script>
$(function () {
$('#fileupload').fileupload({
dataType: 'text',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
}
});
});
</script>
它在Chrome中正常运行,但在IE9中尝试时,控制器中的参数文件始终为空。
我尝试将输入文件放入表单但不起作用。
任何人都有任何想法
提前致谢。
答案 0 :(得分:0)
你应该尝试:
done: function (e, data) {
$.each(data.files, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
}
我认为IE9使用IframeTransport选项,我使用forceIframeTransport: true,
进行了测试,data.result
值有时为空,而data.file
始终相同。