blueimp jQuery-File-Upload总是将空文件发送到IE9中的服务器

时间:2014-02-04 15:08:46

标签: jquery html jquery-file-upload

我正在使用带有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中尝试时,控制器中的参数文件始终为空。

我尝试将输入文件放入表单但不起作用。

任何人都有任何想法

提前致谢。

1 个答案:

答案 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始终相同。