所以我的服务器上有一个PDF文件,我可以打开它看起来很好。
然后我尝试使用此代码
来提供文件Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=Filename.pdf");
Response.TransmitFile("C:\\Temp\\Filename.pdf");
Response.End();
这为文件服务,它保存在客户端上,但问题是这个新文件比原始文件大约。05Mb,当你尝试打开它时,PDF已损坏。
有什么想法吗?
答案 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();