`

不直接打开而是另存为

阅读更多

ASP程序中,有一些附件并不希望用已知程序直接打开,而是想点击时弹出下载提示。

我用了下面的代码:

<%
call downloadFile(Request("path"))

function downloadFile(strFile)
strFilename = server.MapPath(strFile)
Response.Buffer = True
Response.Clear
Set s = Server.CreateObject(”ADODB.Stream”)
s.Open
s.Type = 1
on error resume next
Set fso = Server.CreateObject(”Scripting.FileSystemObject”)
if not fso.FileExists(strFilename) then
Response.Write(”<h1>Error:</h1>” & strFilename & ” does not exist<p>”)
Response.End
end if
Set f = fso.GetFile(strFilename)
intFilelength = f.size
s.LoadFromFile(strFilename)
if err then
Response.Write(”<h1>Error: </h1>” & err.Description & “<p>”)
Response.End
end if
Response.AddHeader “Content-Disposition”, “attachment; filename=” & f.name
Response.AddHeader “Content-Length”, intFilelength
Response.CharSet = “UTF-8″
Response.ContentType = “application/octet-stream”
Response.BinaryWrite s.Read
Response.Flush
s.Close
Set s = Nothing
End Function
%>

将上面的代码另存为down.asp放在要附件的目录下面(比如UpLoadFile/),然后引用:

<a href=”UpLoadFile/down.asp?path=<%=rs(”path”)%>”>点击下载</a>

UPDATE @ 2007.03.29:先道歉,上面的代码有一些问题,别人可以下载你的任何文件!fisker给出的补丁是在

function downloadFile(strFile)

后面加上

if left(strFile,1)="/" or left(strFile,1)="\" or left(strFile,2)=".." then response.end

分享到:
评论

相关推荐

    如何将PPT转word

    当我们在Word中点击“打开”菜单时,在“打开”对话框的“文件类型”下拉菜单中可以看到“PDF”选项,这就意味着我们可以用Word直接打开PDF文档了! ScanSoft PDF Converter的工作原理其实很简单,它先捕获PDF文档中...

    易联远程应用(成都易联电脑科技)

    6.实现公司内部的技术图文资料的上传管理与技术人员的在线查阅(使用此技术的技术文档非常安全,能做到用户只能查看,不能删除不能另存为的目的) 关键字:远程应用接入,远程接入平台,远程接入,remoteapp,集中式...

    C# 自动修改Default.rdp,调用mstsc.exe实现全自动远程登录

    C#下直接调用mstsc.exe远程登录的话,调用之后窗体会消失,在任务管理器里面看到的mstsc.exe进程...当然,也可以自己生成Default.rdp:打开mstsc,点击选项然后设置好参数之后,点击另存为保存得到自己的Default.rdp。

    Paragon Ext2fs Anywhere2.5汉化版

    Ext2Fsd默认也不会将写操作打开,需要修改注册表文件Ext2fsd.reg,将WritingSupport改为00000001,另外要修改配置文件ext2fsd.inf,将里面WritingSupport改为1。重新导入注册表并启动服务,写操作就可以顺利完成了。...

    用JS在浏览器中创建下载文件

    HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载(目前只有chrome、firefox和opera支持)。 下载时会直接使用链接的名字来作为文件名,但是是...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    候不点enterBtn,而是直接关闭对话框,那么此时整个程序应该结束执行,但 是事实是这样的吗?如果你此时对程序进行了改动,再次按下run 按钮,你会发 现又出现了error: collect2: ld returned 1 exit status 的错误...

    ExcelPlus电子表格 v3.31.zip

    ExcelPlus电子表格主要特性: 极高准确率的语音识别技术 ...Excel记账本能够直接读写xls格式文件(不需要安装Excel)和txt文本格式文件,打开后您可以先另存为xss格式文件,然后使用Excel记账本来分析和处理数据。

    DuDu下载加速器 v3.1.0.1

    用户使用DuDu下载加速器后,在下载任何网站的文件时,并不直接从目标网站的服务器下载,而是通过用户的机器向目录服务器发起查询,再被分配到那些速度最快、距离最近甚至是本网段内的已经下载过该文件的用户那里获得...

    OfficeV2.11.1_00005000.exe

    不少朋友在使用office2007版本时,发现里面自带的转换PDF功能却无法...①我们随便打开一个office2007软件,单击左上角的office按钮,选择另存为,可以看到并没有直接转换为PDF的选项,而是查找其他文件格式的加载项。

    电脑键盘F1-F12键的作用

    F3:在资源管理器或桌面上按下F3,则会出现“搜索文件”的窗口,因此如果想对某个文件夹中的文件进行搜索,那么直接按下F3键就能快速打开搜索窗口,并且搜索范围已经默认设置为该文件夹。同样,在WindowsMediaPlayer...

    ePub Creator-crx插件

    ePub创建器允许您将在浏览器中打开的网页另存为脱机ePub电子书。 它当前支持:•可以在Firefox的“阅读器模式”下打开的任何网页,该网页应适用于大多数基于文本的网站•在图书馆服务overdrive.com的在线阅读器中...

    计算机应用技术(实用手册)

    SECURITY OPTION(检测密码方式)如设定为SETUP,则每次打开机器时屏幕均会提示输入口令(普通用户口令或超级用户口令,普通用户无权修改BIOS设置),不知道口令则无法使用机器;如设定为SYSTEM则只有在用户想进入BIOS设置...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

    C#浏览器编程,学习使用

    若缓存中保存了该项,浏览器就直接从缓存中得到该项副本而不必从网络获取,这样就明显地改善浏览器的运行特性。 10) 但缓存要占用磁盘大量的空间,而浏览器性能的改善只有在用户再次查看缓存中的页面时才有帮助。 11...

Global site tag (gtag.js) - Google Analytics