我正在尝试使用代码隐藏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页面。
我在这里做错了什么?
答案 0 :(得分:7)
您正在向后复制流。应该是:
file.CopyTo(Response.OutputStream);
答案 1 :(得分:3)
在发送文件之前清除响应,然后使用TransmitFile方法。
Response.Clear()
Response.TransmitFile("FilePath.ext")
Response.End()