首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP:引用表格数据以更新页面上的文本

ASP:引用表格数据以更新页面上的文本
EN

Stack Overflow用户
提问于 2012-09-04 01:02:52
回答 1查看 95关注 0票数 0

我几乎没有网站编程的背景,所以如果这可能是一个显而易见的问题,我很抱歉。

我正在更新一个网站上的一些网页使用ASP。在一个特定的页面上,我有一个人们可以下载的pdf文件列表。目前,文件的标题直接写入到页面上,并带有指向该文件的链接

代码语言:javascript
复制
myPage.asp    
<tr>
<td>Title</td>
<td><a href="something.pdf">PDF</a></td>
</tr>

我想将所有标题和文件名收集到一个表中,例如:

代码语言:javascript
复制
FileCode   Title    Filename
001        ABC      abcfile.pdf
002        XYZ      xyz.pdf

因此,当我填充页面时,我可以使用类似下面的内容,

代码语言:javascript
复制
<tr>
<td>Table(code).Title</td>
<td><a href=Table(code).Filename>PDF</a></td>
</tr>

代码不必看起来像这样(我不知道它看起来会是什么样子);这只是一个例子来说明我的意思:我希望能够将所有文件信息保存在一个位置,以便易于更新和添加内容,并且当我需要显示一些信息时,我可以只引用它。

我这样做的原因是因为我不希望用户能够直接点击pdf链接并获得文件;他们必须通过联系人表单来获得文件,我认为只发送文件代码而不是实际的文件名可能会更容易。

代码语言:javascript
复制
<a href="contactForm.asp?code=001">PDF</a>

所以这个表也将被contactForm.asp访问。因此,我想要一个这样的桌子的中心位置,而我不知道网站可以接受的约定是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 07:02:19

最简单的解决方案是将文件存储在ASP包含文件的数组中,如下所示:

files.asp

代码语言:javascript
复制
<%
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

代码语言:javascript
复制
<!--#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

代码语言:javascript
复制
<!--#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

代码语言:javascript
复制
<!--#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
%>

希望你能用其中的一些来做你需要的东西?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12251749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档