4

コード ビハインド C# コードを使用して、DownloadFile.aspx ページからファイルを出力しようとしています。私は次のことを行います:

protected void Page_Load(object sender, EventArgs e)
{
    string strFilePath = @"C:\Server\file";
    string strFileName = @"downloaded.txt";

    long uiFileSize = new FileInfo(strFilePath).Length;

    using (Stream file = File.OpenRead(strFilePath))
    {
        Response.ContentType = "application/octet-stream";

        Response.AddHeader("Content-Disposition", "attachment; filename=\"" + strFileName + "\"");
        Response.AddHeader("Content-Length", uiFileSize.ToString());

        Response.OutputStream.CopyTo(file);

        Response.End();
    }
}

これは機能しますが、ファイルをダウンロードして保存すると、そのコンテンツは単なる HTML ページになります。

ここで何が間違っていますか?

4

2 に答える 2

7

ストリームを逆方向にコピーしています。次のようにする必要があります。

file.CopyTo(Response.OutputStream);
于 2013-08-08T20:56:46.560 に答える
3

ファイルを送信する前に応答をクリアし、代わりに TransmitFile メソッドを使用してください。

    Response.Clear()
    Response.TransmitFile("FilePath.ext")
    Response.End()

http://msdn.microsoft.com/en-us/library/12s31dhy.aspx

于 2013-08-08T21:01:40.790 に答える