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 
  }

qqfileパラメータでファイル名を指定する代わりに IE でこれを実行すると、 System.Web.HttpPostedFileWrapperのようなファイルが返され、ファイルも適切に保存されません。このブラウザの問題または IE が一部のスクリプトを防止していません。IEでajaxファイルアップローダーを使用してファイルを保存するにはどうすればよいですか?

4

1 に答える 1

1

実際、IE は本来どおりに動作しているように見えます。そして、代わりに ファイルを次のように保存UploadDocument(string qqfile, int id)する必要がありますUploadDocument(HttpPostedFileWrapper qqfile, int id)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 に答える