0

iframe ハックを使用して、サーバーにファイルを送信できる Ajax クエリをシミュレートしようとしています。IE(7、8、9)で完全に機能しています。私の ASP.NET サーバーはファイルを受信し、その内容を読み取ることができます。

しかし、Chrome または Firefox で同じフォームを使用しようとすると、ASP.NET サーバーはまだファイルを受信して​​いますが (カウント = 1)、ファイルは空です (contentLength = 0)。Fiddler では、IE を使用しているときはファイルの内容を見ることができ、Chrome および Firefox から送信された空のファイルを見ることができます。

これが私の簡略化されたHTMLです

<form id="importForm" method="post" enctype="multipart/form-data">
  <input type="file" id="importFileUpload" name="importFileUpload" class="importFileUpload" />
  <input id="importNewListButton" type="button" class="importexportButton" value="send it" />
</form>
<iframe id="importUploadFileIframe" name="importUploadFileIframe" src="" style="width:0;height:0;border:0px solid #fff;display:none;"></iframe>

これが私の単純化されたjQueryです

$("form#importForm").attr("action", "myScript.aspx");
$("form#importForm").attr("target", "importUploadFileIframe");
$("form#importForm").submit();

そして、これが私の単純化されたC#です

HttpPostedFile file = Request.Files[0];
Helper.log("file = " + file.FileName);
Helper.log("file = " + file.ContentType);
Helper.log("file = " + file.ContentLength);
4

1 に答える 1

0

次のコードを使用して (フォームを送信する前に) フォームでトリガーしていたイベントが問題であることがわかりました。

$("form#importForm").ready(function(){ ... });

このイベントを削除すると、Chrome と Firefox (および IE) がファイルを受け取ります。これが誰かを助けることを願っています。

于 2012-09-12T19:51:57.323 に答える