如何控制是在浏览器打开还是下载,以及控制下载的文件名?

li_zero 2004-02-03 09:31:44
1.对于服务器端的一个word文档(或其他可在浏览器中打开的文档),现在希望能给出两个链接,一个是在浏览器中打开此文档,一个是直接下载此文档,而常规的指向word文档的链接是由浏览器自己判断打开或下载的。我在网易邮件页面中看到了此功能,对于邮件附件提供了“打开”和“下载”两个链接。
请问,如何编程实现直接下载的功能,而不是先由浏览器判断是否可以直接打开而被直接打开了。

2.对于指向下载的文件,我希望下载时能用程序修改提示存储的文件名,比如服务器端的被下载文件名实际为111.dat,而点击下载后提示存盘的文件名希望能改为222.dat。我记得好像是改一个什么头参数,请各位高手帮忙。
...全文
369 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
suncicy 2004-02-03
  • 打赏
  • 举报
回复

给你一个下载用的函数,你参考下。

REM ###########################################
REM 文件下载函数
REM 要专门提供一个页来下载,可以是隐藏的iframe,
REM 比直接下载要慢,但可以在下载前提供安全保证
REM 并且存放路径不必为HTTP可以访问的路径
REM 参数:
REM pathandfilename---包含绝对路径的文件名
REM filename---下载时默认的存盘文件名
REM ###########################################
Function TransferFile(pathandfilename, filename)
Dim objFileSystem, objFile, objStream
Dim schar
Dim sent
sent = 0
TransferFile = True

Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFileSystem.GetFile(pathandfilename)
Set objStream = objFile.OpenAsTextStream(1, -1)

Response.AddHeader "content-type", "application/x-msdownload"
Response.AddHeader "Content-Disposition", "attachment;filename=" & filename
Response.AddHeader "content-length", objFile.Size

Do While Not objStream.AtEndOfStream
schar = objStream.Read(1)
Response.BinaryWrite (schar)
sent = sent + 1
If (sent Mod 16384) = 0 Then
Response.Flush
If Not Response.IsClientConnected Then
TransferFile = False
Exit Do
End If
End If
Loop

Response.Flush
If Not Response.IsClientConnected Then TransferFile = False

objStream.Close
Set objStream = Nothing
Set objFileSystem = Nothing
End Function
qwater 2004-02-03
  • 打赏
  • 举报
回复
IIS设置里修改MIME文件头类型,可以实现下载。

改名等复杂功能可以参考下载系统的例子程序,到处都有。www.ym8.net
suncicy 2004-02-03
  • 打赏
  • 举报
回复
如果想直接打开文件,做个文档链接不就可以了?根本不需要调用这个函数。
这个函数主要是下载用的,那个语句不写也不能直接打开文件。
li_zero 2004-02-03
  • 打赏
  • 举报
回复
如果要让浏览器自己尝试直接打开文件,则
Response.AddHeader "content-type", "application/x-msdownload"
又该改成什么呢?或者是不写这句?

28,407

社区成员

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

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