ASP实现点击链接直接下载文件的代码
分类:程序开发 Tags: asp 链接 评论:0 浏览:7901 最近更新时间:2014/8/23 13:45:59
在ie中点开图片或文档的链接里,IE会自动打开它,有时候这种功能并不是我们所需的,虽然我们可以提醒用户用鼠标右键-->"目标另存为...."命令来下载文档或图片,但这样毕竟不太方便,本文是利用FSO及Stream方法直接实现IE直接下载文档。
<%@ language=vbscript codepage=65001%> <% 'Filename must be input if Request("Filename")="" then response.write "<h1>Error:</h1>Filename is empty!<p>" else call downloadFile(replace(replace(Request("Filename"),"",""),"/","")) Function downloadFile(strFile) ' make sure you are on the latest MDAC version for this to work ' get full path of specified file strFilename = server.MapPath(strFile) ' clear the buffer Response.Buffer = True Response.Clear ' create stream Set s = Server.CreateObject("ADODB.Stream") s.Open ' Set as binary s.Type = 1 ' load in the file on error resume next ' check the file exists Set fso = Server.CreateObject("Scripting.FileSystemObject") if not fso.FileExists(strFilename) then Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>") Response.End end if ' get length of file Set f = fso.GetFile(strFilename) intFilelength = f.size s.LoadFromFile(strFilename) if err then Response.Write("<h1>Error: </h1>Unknown Error!<p>") Response.End end if ' send the headers to the users Browse Response.AddHeader "Content-Disposition","attachment; filename="&f.name Response.AddHeader "Content-Length",intFilelength Response.CharSet = "UTF-8" Response.ContentType = "application/octet-stream" ' output the file to the browser Response.BinaryWrite s.Read Response.Flush ' tidy up s.Close Set s = Nothing End Function end if %> <%@ language=vbscript codepage=65001%> <% 'Filename must be input if Request("Filename")="" then response.write "<h1>Error:</h1>Filename is empty!<p>" else call downloadFile(replace(replace(Request("Filename"),"",""),"/","")) Function downloadFile(strFile) ' make sure you are on the latest MDAC version for this to work ' get full path of specified file strFilename = server.MapPath(strFile) ' clear the buffer Response.Buffer = True Response.Clear ' create stream Set s = Server.CreateObject("ADODB.Stream") s.Open ' Set as binary s.Type = 1 ' load in the file on error resume next ' check the file exists Set fso = Server.CreateObject("Scripting.FileSystemObject") if not fso.FileExists(strFilename) then Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>") Response.End end if ' get length of file Set f = fso.GetFile(strFilename) intFilelength = f.size s.LoadFromFile(strFilename) if err then Response.Write("<h1>Error: </h1>Unknown Error!<p>") Response.End end if ' send the headers to the users Browse Response.AddHeader "Content-Disposition","attachment; filename="&f.name Response.AddHeader "Content-Length",intFilelength Response.CharSet = "UTF-8" Response.ContentType = "application/octet-stream" ' output the file to the browser Response.BinaryWrite s.Read Response.Flush ' tidy up s.Close Set s = Nothing End Function end if %>
本文地址:/510/
-
• ASP连接Access数据库绝对路径代码
• ASP在后一页刷新前一页代码
• 中国十大ASP CMS系统介绍
• 利用ASPJPEG为图片加水印及制作缩略图代码
• asp导出excel文件方法
• ASP过滤所有超链接代码
• ASP网页过滤HTML代码的多种方法
• 网页设计中DIV+CSS常用命名规则
• 一个表单中如何实现多个按钮提交的方法代码
• ASP随机读取数据库中几条数据代码