15

サーバー (ASP.NET) からクライアントに動的に生成されたファイルをダウンロードする必要がある興味深いタスクがあります。クライアント側では単なる JavaScript (jQuery) であり、クライアントは多くのパラメーターを生成して、データのエクスポート方法をカスタマイズできます。

サーバーからファイルをダウンロードする最良の方法は何ですか? ここで説明されているような WCF サービスや、このような単純なページを使用する必要がありますか?

ページをリロードせずにファイルをダウンロードする方法がわかりません (この場合 $.ajax が機能するかどうかはわかりません)。誰かがこのトピックに関する方向性を教えてもらえますか? ありがとう。

4

1 に答える 1

20

まず、ハンドラーからファイルを作成できます.ashx

でダウンロードするファイルがありdownload.ashx、JavaScriptから渡すパラメータがいくつかあるとします。たとえばdownload.ashx?p1=8827&p2=8831、何を作成するかを知るためです。

次に、JavaScriptで、次のようにリダイレクトを行うことができます。

window.location = "download.ashx?p1=8827&p2=8831";

または代わりにあなたはwindow.open同じ考えをするために使うことができます

window.open("download.ashx?p1=8827&p2=8831");

ファイルがダウンロードを開始します。

添付ファイルのヘッダーと、ハンドルに正しいコンテンツタイプが設定されていることを確認してください。例:

  HttpContext.Current.Response.ContentType = "application/octet-stream";
  HttpContext.Current.Response.AddHeader("Content-Disposition", 
                    "attachment; filename=" + SaveAsThisFileName);

シンプルで明確、テスト済みで動作中。

また、あなたはこの答えに興味があるかもしれません:エラーを処理する方法

于 2012-06-06T11:05:36.207 に答える