Как заставить браузер загружать, а не просматривать PDF-документы в ASP.NET веб-формы
Просто хочу спросить, как я могу запретить просмотр веб-браузера в браузере, потому что каждый раз, когда пользователь нажимает ссылку, чтобы загрузить его просмотр в браузере
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>
2 ответов:
Используйте кнопку linkbutton, чтобы вы могли запускать код на стороне сервера по щелчку мыши:
<asp:LinkButton ID="hl_download" runat="server" OnClick="hl_download_Click">Download</asp:LinkButton>Затем, в кодовом поле:
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(); }Это предполагает, что веб-путь точно соответствует пути файловой системы файла. В противном случае измените
Response.WriteFile()так, чтобы он указывал на расположение файла pdf в файловой системе.
У меня была такая же проблема несколько дней назад, и я нашел отличное решение, опубликованное другим здесь на StackOverflow. Это не 100% тот же сценарий, как он использует HttpRequests для получения файлов на другом сервере,но отправка файла в браузер в октет-потоке гарантирует, что окно загрузки всплывет.
Comments