Html 如何强制浏览器在ASP.NET Webforms中下载而不是查看PDF文档
我只是想问一下,如何防止web浏览器在浏览器上查看,因为每次用户单击链接以在浏览器视图中下载它Html 如何强制浏览器在ASP.NET Webforms中下载而不是查看PDF文档,html,asp.net,webforms,Html,Asp.net,Webforms,我只是想问一下,如何防止web浏览器在浏览器上查看,因为每次用户单击链接以在浏览器视图中下载它 asp.net controller <li><asp:HyperLink ID="hl_download" runat="server" >Download</asp:HyperLink></li> html <a id="dnn_ctr932_View_hl_download" href="/ideaPark/DesktopModules/R
asp.net controller
<li><asp:HyperLink ID="hl_download" runat="server" >Download</asp:HyperLink></li>
html
<a id="dnn_ctr932_View_hl_download" href="/ideaPark/DesktopModules/ResourceModule/pdf_resources/IdeaPark_ER_diagram.pdf">Download</a>
asp.net控制器
使用链接按钮,以便在单击时运行服务器端代码:
<asp:LinkButton ID="hl_download" runat="server" OnClick="hl_download_Click">Download</asp:LinkButton>
这假定web路径干净地映射到文件的文件系统路径。否则,请修改
Response.WriteFile()
,使其指向文件系统中pdf文件的位置。几天前我遇到了同样的问题,并在StackOverflow上找到了另一个发布的很好的解决方案。这与使用HttpRequests在另一台服务器上获取文件的场景不同,但将文件以八位字节流发送到浏览器将保证弹出一个下载窗口
这是用户设置。不要打扰用户。如果我使用了你的网站,但我没有得到预期的行为,我会很恼火。我知道,但我们的客户要求你通过发送标题
内容类型:application/octet stream
,将pdf下载伪装成下载,而不是pdf文档,以下是你在php中的操作方法,这就是php。我的问题是在.NET中可能重复的
public void hl_download_Click(Object sender, EventArgs e)
{
Response.AddHeader("Content-Type", "application/octet-stream");
Response.AddHeader("Content-Transfer-Encoding","Binary");
Response.AddHeader("Content-disposition", "attachment; filename=\"IdeaPark_ER_diagram.pdf\"");
Response.WriteFile(HttpRuntime.AppDomainAppPath + @"ideaPark\DesktopModules\ResourceModule\pdf_resources\IdeaPark_ER_diagram.pdf");
Response.End();
}