0

サーバーからクライアントにファイルをダウンロードしようとすると問題が発生します。クリックすると、ファイルの保存プロンプトが想定どおりに表示されますが、ダウンロードするファイルではなく、aspxページを指しますか?つまり、ダウンロードしたいファイルはダウンロードされませんが、ダウンロードリンクが配置されているページはダウンロードされます。本当に奇妙な...ダウンロード用に指定したファイルが完全に無視されている/効果がないようです...

if (File.Exists(Server.MapPath(driversLocation + name + ".zip")))
{
    FileInfo fileInfo = new FileInfo(Server.MapPath(driversLocation) + name + ".zip");

    Response.Clear();
    Response.AddHeader("Content-Disposition", "inline;attachment; filename=" + name + ".zip");
    Response.AddHeader("Content-Length", fileInfo.Length.ToString());
    Response.ContentType = "application/download";
    Response.Flush();
    Response.TransmitFile(Server.MapPath(driversLocation) + name + ".zip");
    Response.End();
 }

どんな助けでもいただければ幸いです!

4

1 に答える 1

0

問題は「インライン」でした。コードを読みやすくするために微調整することが他にもいくつかあります。

関連記事:Content-Disposition:「インライン」と「アタッチメント」の違いは何ですか?

FileInfo fileInfo = new FileInfo(Server.MapPath(driversLocation + name + ".zip"));

if (fileInfo.Exists)
{
     Response.Clear();
     Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);
     Response.AddHeader("Content-Length", fileInfo.Length.ToString());
     Response.ContentType = "application/x-zip-compressed";
     Response.TransmitFile(fileInfo.FullName);
     Response.End();
}
于 2012-11-23T15:31:59.563 に答える