PDF文件在通过HTTP提供文件后损坏

时间:2013-08-22 22:21:04

标签: c# asp.net pdf

所以我的服务器上有一个PDF文件,我可以打开它看起来很好。

然后我尝试使用此代码

来提供文件
Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=Filename.pdf");
Response.TransmitFile("C:\\Temp\\Filename.pdf");
Response.End();

这为文件服务,它保存在客户端上,但问题是这个新文件比原始文件大约。05Mb,当你尝试打开它时,PDF已损坏。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的代码应该有效。请确保您使用Ajax下载文件。

您可以尝试使用闪光灯并在结束前关闭。

Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=Filename.pdf");
Response.TransmitFile("C:\\Temp\\Filename.pdf");
Response.Flush();
Response.Close();
Response.End();

如果它仍然不起作用,您可以尝试BinaryWrite。唯一的缺点是它不适用于大文件,因为它在发送到客户端之前将文件加载到内存。

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=Filename.pdf"));
Response.BinaryWrite(File.ReadAllBytes("C:\\Temp\\Filename.pdf"));
Response.End();