我在网站编程方面的背景很少,所以如果这可能是一个明显的问题我很抱歉。
我正在使用ASP更新网站上的一些页面。在特定页面上,我有一个人们可以下载的pdf文件列表。目前,文件的标题直接写入页面及其链接
myPage.asp
<tr>
<td>Title</td>
<td><a href="something.pdf">PDF</a></td>
</tr>
我想将所有标题和文件名收集到一个表中,例如:
FileCode Title Filename
001 ABC abcfile.pdf
002 XYZ xyz.pdf
因此,当我填充页面时,我可以使用以下内容,
<tr>
<td>Table(code).Title</td>
<td><a href=Table(code).Filename>PDF</a></td>
</tr>
代码看起来不一定(我不知道它会是什么样子);这只是一个显示我的意思的示例:我希望能够将所有文件信息保存在一个位置,以便更新和添加内容,我可以在需要显示某些信息时引用它
我这样做的原因是因为我不希望用户能够直接点击pdf链接并获取文件;他们必须通过联系表单来获取文件,我认为发送文件代码而不是实际文件名可能更容易,
<a href="contactForm.asp?code=001">PDF</a>
因此,contactForm.asp也将访问此表。因此,我想要一个这样的表的中心位置,我不知道什么是可接受的网站约定。
答案 0 :(得分:0)
最简单的解决方案是将文件存储在ASP包含文件中,如下所示:
files.asp
<%
Dim files(2, 2)
files(0, 0) = "1"
files(1, 0) = "File title 1"
files(2, 0) = "file1.txt"
files(0, 1) = "2"
files(1, 1) = "File title 2"
files(2, 1) = "file2.txt"
files(0, 2) = "3"
files(1, 2) = "File title 3"
files(2, 2) = "file3.txt"
%>
(如果文件位于文件夹中,则添加路径,例如“/folder/file1.txt”)
要显示您可以使用此代码的文件列表:
showfiles.asp
<!--#include file="files.asp"-->
<table>
<tr>
<td>FileCode</td>
<td>Title</td>
<td>Filename</td>
</tr>
<% Dim i : For i = 0 To UBound(files, 2) %>
<tr>
<td><%= files(0, i) %></td>
<td><%= files(1, i) %></td>
<td><%= files(2, i) %></td>
</tr>
<% Next %>
</table>
要将文件发送到浏览器,您可以使用以下方法之一。第一个只是对文件的简单重定向,第二个实际加载文件并将文件写入浏览器,以便用户不知道文件的路径(更安全但不安全):
contact.asp
<!--#include file="files.asp"-->
<%
Dim code, file, i
code = Request.QueryString("code")
For i = 0 To UBound(files, 2)
If files(0, i) = code Then
file = files(2, i)
Exit For
End If
Next
If file <> "" Then
Response.Redirect(file)
Else
Response.Write("File not found")
End If
%>
contact2.asp
<!--#include file="files.asp"-->
<%
Dim code, file, i, stream
code = Request.QueryString("code")
For i = 0 To UBound(files, 2)
If files(0, i) = code Then
file = files(2, i)
Exit For
End If
Next
If file <> "" Then
Set stream = Server.CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1
stream.LoadFromFile(Server.MapPath(file))
Response.BinaryWrite(stream.Read)
Else
Response.Write("File not found")
End If
%>
希望你可以用它来制作你需要的东西吗?