0

我在我的 MVC3 应用程序中有 ajax 文件上传器,它在 Firefox 和 chrome 中运行良好,但在 IE9 和 IE8 中无法运行。当我上传文件时,它在 IE 的服务器端给了我错误的文件名。

这是我的上传代码

<script type="text/javascript">
    function InitializeUploader() {
            Dname = [];
            var uploader = new qq.FileUploader({
                multiple: true,
                element: document.getElementById('file-uploader'),
                action: '@Url.Action("UploadDocument","Project")',
                debug: true,
                params: { id: $("#Id").val() },
                onSubmit: function (id, fileName) {
                },

                onComplete: function (id, fileName, responseJSON) {
                    alert(responseJSON.fileName);
                    $("#DocumentName").val(responseJSON.fileName);
                    fileSize = responseJSON.size;
                    Dname.push(responseJSON.fileName);
                    type = responseJSON.type;
                }

            });
        }  

</script>
<form method="post" enctype="multipart/form-data" action="" style="margin-left: 4px;
            margin-top: 0px;" id="documentUploadForm">
            <div id="file-uploader">
                <input type="file" id="uplodfile" />
                <input class="button" type="button" value="Upload" id="UploadDocbtn" style="float: right;
                    width: 100px;" /></div>
            </form>

服务器端动作

 [HttpPost]
  public ActionResult UploadDocument(string qqfile, int id)
  {

     // code for saving File 
  }

当我在 IE 中运行它而不是在qqfile参数中给出文件名时,它会给我像System.Web.HttpPostedFileWrapper这样的文件,并且文件也没有正确保存。我没有得到这个浏览器问题或 IE 阻止某些脚本。那么如何在 IE 中使用 ajax 文件上传加载程序保存文件?

4

1 回答 1

1

实际上,IE 看起来就像它应该的那样工作。而不是UploadDocument(string qqfile, int id)你应该有UploadDocument(HttpPostedFileWrapper qqfile, int id) File 应该保存为qqfile.SaveAs("path to file")

不清楚你现在得到什么文件名。这可能是转换HttpPostedFile为字符串的结果,并且 IE 没有返回该转换所需的一些信息以返回文件名而不是原始对象类型。尝试做这样的事情:

 [HttpPost]
  public ActionResult UploadDocument(System.Web.HttpPostedFileWrapper qqfile, int id)
  {
     qqfile.SaveAs("filename");
     // code for saving File 
  }

它应该在所有浏览器中都能正常工作

于 2013-02-08T11:09:03.520 回答