最简单的解决方案是将文件存储在 ASP 包含文件中的数组中,如下所示:
文件.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”)
要显示文件列表,您可以使用以下代码:
显示文件.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>
要将文件发送到浏览器,您可以使用以下方法之一。第一个只是简单的重定向到文件,第二个实际加载文件并将文件写入浏览器,使用户不知道文件的路径(更安全但不是很安全):
联系人.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
%>
联系人2.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
%>
希望您可以使用其中的一些来满足您的需求?