`

不直接打开而是另存为

阅读更多

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

分享到:
评论

相关推荐

    Micosoft Project另存为pdf的解决办法及软件

    3. **在Project中另存为PDF**:现在回到Microsoft Project,打开你的项目计划。点击“文件”菜单,选择“打印”,在打印机列表中选择你刚刚设置为默认的虚拟PDF打印机。在打印设置中,确保所有的页面范围、方向和...

    用javascript实现点击链接弹出图片另存为而不是直接打开

    标题中的“用javascript实现点击链接弹出图片另存为而不是直接打开”指的是在网页中,通过JavaScript技术,当用户点击一个链接时,不是直接在浏览器中打开图片,而是触发浏览器的下载行为,使得图片能够被用户保存到...

    PHP抓取远程图片并另存为的实现方法_.docx

    `:创建一个新文件(或打开已存在文件)并写入图片数据。`"a"`模式表示追加模式,但在文件不存在时,会自动创建。 9. `fclose($fp2);`:关闭文件句柄,完成写入操作。 10. `return $filename;`:函数返回保存图片...

    连接到txt文本的超链接,不直接打开而是点击后下载的处理方法

    此外,在使用header()函数时,如果之前有任何输出(哪怕是空格或换行),都会导致header()函数不工作,从而影响文件下载的实现。 总结起来,要使txt文件超链接下载而不是打开,可以通过服务器配置或者程序中设置...

    PHP 抓取网页图片并且另存为的实现代码

    在输出缓冲开启时,脚本的任何输出都不会立即发送到浏览器,而是被存储在内部缓冲区中。这在我们需要捕获脚本的输出时非常有用,比如在这里,我们需要获取图片的内容。 2. **`readfile()`**: 这个函数读取指定的...

    打开文件保存二进制为TXT,读取二进制,转化为文件

    与文本模式(如'r'、'w'、'a')不同,二进制模式不进行字符编码解码,而是直接处理字节流,适用于处理图片、音频、视频等非文本文件,以及需要保持原始字节数据的场景。 2. **文件打开和关闭**:使用`open()`函数...

    Vb程序实现HTTP方式下载文件.rar

    在VB中,我们并不直接编写HTTP请求,而是借助API调用来与HTTP服务器交互。 shdocvw.dll是Windows操作系统的一部分,它包含了许多与Web浏览相关的功能,如打开URL、下载文件等。在VB中,我们可以使用`ShellExecute` ...

    PPT-文档的新建保存.pdf

    对于已经存在的文档,当你进行编辑后,可以直接使用上述任意一种方法保存,这时系统不会显示“另存为”对话框,而是直接以原文件名和位置保存修改后的内容。为了防止因意外情况导致文档丢失,特别是在处理大型文档时...

    Word技巧 快速提取对象文件.docx

    这一步骤是为了直接打开嵌入在Word文档内的对象,而不是Word文档本身。 接着,打开的对象文件会显示在Word窗口中。此时,我们不需要在Word内进行任何编辑操作,而是转向文件的保存。点击左上角的“Office按钮”,在...

    JAVA_简易记事本

    Swing组件通常被称为轻量级组件,因为它们不直接与操作系统交互,而是由Java虚拟机管理。 在这个简易记事本中,可能使用了JFrame作为主窗口,它是Swing中的顶级容器,用于展示所有的组件。JTextArea可能是用来显示...

    网页快速转换为WPS与WORD文档要如何操作.docx

    首先,当你在浏览器中浏览到想要保存为WPS或Word文档的网页时,不要直接复制粘贴,而是采取更完整的方式。点击浏览器菜单中的“文件”,然后选择“另存为”。在弹出的对话框中,确保“文件类型”设置为“网页,全部...

    表格文件损坏恢复

    打开“文件”菜单,点击“打开”,找到损坏文件的位置,选择文件后,不要直接点击“打开”,而是点击下拉箭头选择“打开并修复”。这一步可能会恢复文件的可读性。 4. **使用Excel查看程序**: 当上述方法都无法...

    excel如何转变为图片.doc

    - 不打开原文档,而是直接在新文档中全选表格,复制。 - 打开“画图”程序,粘贴表格,调整大小,然后保存为JPEG或GIF格式。 4. **使用截图工具**: - 使用系统自带的截图工具,如Windows的“画图”或第三方截图...

    PB做的记事本

    然而,在这个记事本程序中,由于主要处理的是纯文本,可能不会直接使用数据窗口,而是通过系统API(Application Programming Interface)或内置函数进行文件操作。例如,使用PB的`FileOpen`, `FileRead`, `FileWrite...

    mapgis格式与cad格式、shp格式相互转换图片格式转换为msi.doc

    在MapGIS中,不能直接将图片转换为MSI格式,而是通过数据输入和转换数据类型来实现。例如,可以选择jpg、tif或bmp等图片格式,使用“图形处理”-&gt;“文件转换”-&gt;“文件”-&gt;“数据输入”-&gt;“转换数据类型”,添加图片...

    html中的内容直接下载到excel中,替换 document.execCommand(‘saveAs’)方法

    对于HTML表格转Excel,我们可以先将表格内容转换为CSV格式(逗号分隔值),因为CSV可以被Excel直接识别和打开。 以下是一个简单的jQuery插件`jquery.table2Excel`的实现步骤: 1. **数据转换**:遍历HTML表格的每...

    让系统崩溃的bat代码

    提醒用户“打开后另存为bat文件”表明原始内容可能并非bat格式,而是需要用户自行转换,这样可以避免直接运行时的安全检查。而“切勿亲自尝试,切勿用于非法用途”是对潜在风险的警告,强调了这些代码的危险性以及...

    ppsx 转pptx工具

    如果收到一个PPSX文件,但需要添加或修改内容,直接打开是无法编辑的。此时,转换为PPTX格式就显得尤为重要。此外,某些软件或平台可能只支持PPTX格式,因此转换也可能是为了确保兼容性。 转换PPSX到PPTX的过程其实...

    不删文字轻松减小Word文件的大小.docx

    2. 使用“另存为”:当你对文档进行了一定的修改后,不要直接保存,而是使用“另存为”命令。这样,Word会重新组织并存盘,有效地压缩文件。 3. 不嵌入字体或仅嵌入所需字体:Word允许你将文档中使用的字体一起保存...

    MATLAB如何提取fig文件中的xyz坐标值.docx

    MATLAB 提供了四种方法来保存图像:直接另存为、复制到剪贴板、使用saveas命令和print函数。 1. 直接另存为:在figure菜单中选择“File”→“Save as”,然后选择保存形式(fig、eps、jpeg、gif、png、bmp等)。...

Global site tag (gtag.js) - Google Analytics