尝试使用ASP.NET流式传输文件时出错

时间:2011-12-14 10:50:13

标签: c# asp.net

以下是用户点击下载链接时在客户端下载的代码

Response.AppendHeader("Content-Disposition", "attachment; 
                       filename=.pdf");

Response.TransmitFile(FileName);

Response.End();

内容类型有所不同: PDF格式,字,SWF,的.zip,PPT,XLS

但是我遇到了与附件enter image description here相同的问题。

4 个答案:

答案 0 :(得分:1)

在开头指定内容类型。

Response.ContentType =“application / pdf”

答案 1 :(得分:1)

对所有流类型使用application / octet-stream:

                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.ContentType = "application/octet-stream";
                HttpContext.Current.Response.AppendHeader("content-disposition",string.Format("attachment; filename={0}", "Path.GetFileName(strVirtualFilePath);"));
                HttpContext.Current.Response.WriteFile(_strVirtualFilePath);
                HttpContext.Current.Response.End();
                HttpContext.Current.Response.Flush();

答案 2 :(得分:0)

请务必在代码开头调用Response.Clear(),然后按照 shrutyzet 的建议设置ContentType

答案 3 :(得分:0)

如果FileName是具有指定值的字符串,则删除该行
Response.AppendHeader(“Content-Disposition”,“attachment; filename = .pdf”);
来自你的代码