TXTファイルを返す関数がASPにあります。
ユーザーにファイルをダウンロードしてもらいたいのですが、ダウンロードしたときにブラウザがファイルを表示し続けたいと思っていました Response.Redirect("/Dir/Dir/TextFilePath.txt");
だから私はこれをヘッダーに追加するとダウンロードを強制することを発見しました
Response.AddHeader("content-disposition",
"attachment;filename=/Dir/Dir/TextFilePath.txt");
そして、これは1つのキャッチでファイルを強制的にダウンロードします。
このファイルはaspxソースコードであり、私のtxtファイルではありません。正しい名前が付けられていますが、間違いなくtxtファイルではありません。
これは、asp.netでファイルをダウンロードする正しい方法です。「正しい方法」ではなく「正しい方法」に注意してください。他の方法でそれを行うことができますが、これは私にとってはうまくいきます。
try
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=" + _Filename);
Response.AddHeader("Content-Type", "application/Word");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Length", _FileLength_in_bytes);
Response.BinaryWrite(_Filedata_bytes);
Response.End();
}
catch (ThreadAbortException)
{ }
finally
{
}
上記の例では、ワードファイルをバイト配列として送信して送信します。この方法で行う必要はありませんが、機能します。
また、私は私の方法を使用することを決定した人のために追加したいと思い、これはWILLスローThreadAbortException
ではResponse.End()
。これは既知の問題であり、何の影響もありません。すべてが正しく実行されていますが、例外がスローされるため、キャッチする必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加