我几乎没有网站编程的背景,所以如果这可能是一个显而易见的问题,我很抱歉。
我正在更新一个网站上的一些网页使用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访问。因此,我想要一个这样的桌子的中心位置,而我不知道网站可以接受的约定是什么。
发布于 2012-09-05 07:02:19
最简单的解决方案是将文件存储在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
%>希望你能用其中的一些来做你需要的东西?
https://stackoverflow.com/questions/12251749
复制相似问题