将 PDF 文件下载到本地 PC 时出现问题
Problems with downloading a PDF file to local PC
我正在尝试从网络服务器下载使用 PDFsharp 创建的 PDF 文件,并将其下载到本地 PC 的下载文件夹中。我在谷歌上搜索了很多,尝试了很多但都没有成功。我可以正确创建 PDF 文件并将其保存到磁盘 - 但我不能 transfer/Download 将它保存到本地 PC 的下载文件夹。
我试过以下代码:
string filename = Server.MapPath("~\Files\Temp\file.pdf");
document.Save(filename); //generate the physical file
MemoryStream stream = new MemoryStream();
document.Save(stream, false);
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", stream.Length.ToString());
Response.BinaryWrite(stream.ToArray());
Response.Flush();
stream.Close();
Response.End();
那我做错了什么?
缺少Content-Disposition
:
Response.AddHeader("Content-Disposition", "attachment;filename=test.pdf");
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Length", binfile.Length.ToString());
Response.BinaryWrite(binfile);
如果您有更新面板,则必须将按钮设置为回发触发器
<asp:UpdatePanel runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnID" />
</Triggers>
<ContentTemplate></ContentTemplate>
</asp:UpdatePanel>
我正在尝试从网络服务器下载使用 PDFsharp 创建的 PDF 文件,并将其下载到本地 PC 的下载文件夹中。我在谷歌上搜索了很多,尝试了很多但都没有成功。我可以正确创建 PDF 文件并将其保存到磁盘 - 但我不能 transfer/Download 将它保存到本地 PC 的下载文件夹。
我试过以下代码:
string filename = Server.MapPath("~\Files\Temp\file.pdf");
document.Save(filename); //generate the physical file
MemoryStream stream = new MemoryStream();
document.Save(stream, false);
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", stream.Length.ToString());
Response.BinaryWrite(stream.ToArray());
Response.Flush();
stream.Close();
Response.End();
那我做错了什么?
缺少Content-Disposition
:
Response.AddHeader("Content-Disposition", "attachment;filename=test.pdf");
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Length", binfile.Length.ToString());
Response.BinaryWrite(binfile);
如果您有更新面板,则必须将按钮设置为回发触发器
<asp:UpdatePanel runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnID" />
</Triggers>
<ContentTemplate></ContentTemplate>
</asp:UpdatePanel>