如何实现点击按钮保存一个网页(该网页是根据数据库的一条记录动态生成的)?

woshihuzi 2005-04-29 01:48:23
我的数据库存了一些故事,用户在浏览的时候,我在标题浏览允许他点击标题的超级链接进入故事页面,我的做法是把故事的ID当作参数传递给asp脚本test-mdb.asp,如下所示:
http://localhost/test/test-mdb.asp?RecID=37
脚本处理之后,会简单显示出一个故事来。

我想添加如下的功能:
在故事页面的最下面添加一个“保存本故事”的按钮,用户点击之后,服务器就能把故事以文本文件的形式保存到用户的硬盘上。最好能让用户选择保存位置和文件名。
注意:用IE本身的“另存为”功能,也能保存成文本文件,但总感觉不方便。
...全文
352 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshihuzi 2005-04-30
  • 打赏
  • 举报
回复
高手啊,高手,
你在哪里啊,在哪里?
woshihuzi 2005-04-30
  • 打赏
  • 举报
回复
嗬嗬,这倒也是一个办法。不过,如何打包呢?因为生成一个txt文件容易,但要是超级链接链过去的话,在浏览器中只能是打开文本文件而不是下载它。
zy51 2005-04-30
  • 打赏
  • 举报
回复
有一个方法.在test-mdb.asp加载的时候在服务器端处理,临时建立一个文本文件.然后给用户一个按钮打包下载.下载这个文本文件不就行了.也很方便.不过这样,要是用户多的话,服务器负荷可就重了.
qiqunet 2005-04-30
  • 打赏
  • 举报
回复



你好用不用,难道就非要用Title的吗?

你不知道Title在Html里面是什么东西来的吗?

每个语言都有它的保留字、关键字,学语言请顺便学点词汇及语法。







woshihuzi 2005-04-29
  • 打赏
  • 举报
回复
自己顶,期待高手
woshihuzi 2005-04-29
  • 打赏
  • 举报
回复
谢谢qiqunet(无聊到在这里玩CSDN的干棍)老兄,借助IE命令的确是一个好办法,我用了如下的代码:
=====================================
<script language="Javascript">
var title="<%=timu%>.txt";
</script>
<input type=button value=保存故事 onclick="document.execCommand ('SaveAs',true,title);">
=====================================
老大,我点击的时候,确实弹出来的对话框,但是默认文件名是我的脚本名:test-mdb.asp。
1、默认的文件类型是HTML文件(*.htm;*.html),我如果直接点击确定的话,就会保存成test-mdb.asp,其实就是一个htm文件。怎么样才能让它的扩展名自动变成*.htm呢?
2、如果我选择保存成文本类型,
(1)不修改文件名,结果还是一个htm文档;
(2)把文件名修改成aa.12之类的,结果还是一个htm文档;
(3)只有把文件名修改成*.txt,才能保存成文本文件,
但是,脚本文件的<title></title>之间的内容也保存了
我的脚本使用了表格,保存之后,会有大量的空格
这些问题如何解决呢?
qiqunet 2005-04-29
  • 打赏
  • 举报
回复


  上面的程序是用IE的SAVE AS做的,说说不满意的地方吧?



  FSO也能在客户端使用,但需要权限





qiqunet 2005-04-29
  • 打赏
  • 举报
回复



你看看下面的程序,哪里用起来不放便?



<html>
<head>
</head>
<body>
<input type=button value=提交 onclick="document.execCommand ('SaveAs',true,storyname);">
<script language="Javascript">
var storyname="老人与海.txt";
</script>
这是一个老人和一个大海的故事哦,认真听好了:::::::::::::::::::::
</body>
</html>

woshihuzi 2005-04-29
  • 打赏
  • 举报
回复
davery() 老兄,我只会用vbscript啊,我好像记得vbscript的fso只能由服务器来控制啊。在服务器上读写文件,我没问题。现在是想让服务器把某条记录(由记录的ID决定)保存到客户端的硬盘上啊。
哪位高手能给个vbscript的解决办法?
如果是用客户端JS的FSO来操作,那又该怎么样呢?

我的test-mdb.asp是非常简单的:
=============================================
<%@ Language=VBScript%>
<%
CurrentRec= CLng(request("RecID"))

set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" &_
server.mappath("test-mdb.mdb")
sql = "SELECT * FROM story where ID=" & CurrentRec
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
%>

<html>
<head><title>故事</title></head>
<body>
<%
response.write trim(rs("题目"))
response.write "<br><br>"
response.write trim(rs("题目"))

'关闭数据库
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>

davs 2005-04-29
  • 打赏
  • 举报
回复
用客户端JS的FSO来操作,

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧