asp.net 2.0を使用してWebページからダウンロードアクションを実装する最良の方法は何ですか?
アクションのログ ファイルは、[Application Root]/Logs というディレクトリに作成されます。私は完全なパスを持っており、クリックするとIISサーバーからユーザーのローカルPCにログファイルをダウンロードするボタンを提供したいと考えています。
これは役に立ちますか:
http://www.west-wind.com/weblog/posts/76293.aspx
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment; filename=logfile.txt");
Response.TransmitFile( Server.MapPath("~/logfile.txt") );
Response.End();
Response.TransmitFile は、Response.WriteFile の代わりに、大きなファイルを送信する方法として受け入れられています。
http://forums.asp.net/p/1481083/3457332.aspx
string filename = @"Specify the file path in the server over here....";
FileInfo fileInfo = new FileInfo(filename);
if (fileInfo.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Flush();
Response.TransmitFile(fileInfo.FullName);
Response.End();
}
アップデート:
初期コード
Response.AddHeader("Content-Disposition", "inline;attachment; filename=" + fileInfo.Name);
「inline;attachment」、つまり Content Disposition の 2 つの値があります。
正確な時期はわかりませんが、Firefox では適切なファイル名だけが表示されませんでした。ファイルのダウンロード ボックスが表示され、Web ページの名前とその拡張子 ( pagename.aspx ) が表示されます。ダウンロード後、名前を実際の名前に戻すと、ファイルが正常に開きます。
このページによると、先着順で運営されています。値を変更するattachment
だけで問題は解決しました。
PS: これがベスト プラクティスかどうかはわかりませんが、問題は解決されています。