0

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

然后我尝试使用此代码提供文件

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

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

有任何想法吗?

4

1 回答 1

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();
于 2013-08-22T22:45:29.827 回答