我继承了一个vb.net网站,我正在尝试添加一个允许从服务器下载.pdf文件的页面。
这是我最初的尝试:Clickable Link Not appearing on page from generated anchor tag并且失败了,因为我使用runat="server"
在javascript中生成锚标记。
我现在明白为什么这不起作用。
所以,我的问题已改为: 如果我有一个这样的简单锚标记:
<a href='download.aspx?type=inspection&file=NNNNNN.pdf'>Download NNNNNN.pdf</a>`
download.aspx和download.aspx.vb是什么样的?
我是否需要更改IIS中的任何内容以使其知道这是一个有效的URL?
我问的是如何在没有asp控件的情况下执行此操作,因为我在网上找到的示例都依赖于asp控件。
我是一个Windows / IIS / vb.net菜鸟,所以请在答案中尽可能具体。
这个问题 Reading a binary file and using Response.BinaryWrite() 不回答我的问题,因为它是代码片段而不是整个文件。我对vb.net太新了,无法将这些片段放在一个文件中并进行调试。
答案 0 :(得分:2)
download.aspx ......看起来像什么?
这可能是download.aspx
文件的全部内容:
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="download.vb" %>
什么... download.vb看起来像?
这样的事情:
Imports System;
Imports System.Web;
Public Partial Class Download Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object sender, e As EventArgs)
Response.Clear()
Response.ClearHeaders()
Response.ClearContent()
Response.AddHeader("Content-Disposition", "attachment; filename=YourFileNameHere")
Response.ContentType = "content type here (ie: application/x-pdf)";
'Load and write the file data to the Response stream here
Response.End();
End Sub
End Class
通过使用HttpHandler(* .ashx)而不是Page,您也可以(小)提升性能。