ASP利用FSO及Stream方法实现IE直接下载文档

fso|stream|下载

在IE进行文档链接时,如果遇到OLE支持的文档,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
%>  

时间: 2024-10-27 16:05:40

ASP利用FSO及Stream方法实现IE直接下载文档的相关文章

asp利用fso生成html页面

asp利用fso生成html页面,此文章是我大二时写的了,就是利用asp自带组件fso来进行用户文件上传时就生成html文件用了,它也很好的判断文件名称是否存在了,等提示 <% dim path,filename,filetype,fileconten,fso path=request("path") filename=html_encode(request("filename")) filecontent=request("filecontent&

asp利用fso给文件夹和文件改名的代码_FSO专题

<% Dim fso,f,folder     Set fso=Server.CreateObject("scripting.filesystemobject")     '改目录名     Set folder=fso.getfolder(Server.Mappath("Old"))     folder.name="New" '新名字     '改文件名     Set f=fso.getfile(Server.Mappath(&quo

asp利用fso给文件夹和文件改名的代码

<% Dim fso,f,folder     Set fso=Server.CreateObject("scripting.filesystemobject")     '改目录名     Set folder=fso.getfolder(Server.Mappath("Old"))     folder.name="New" '新名字 '改文件名     Set f=fso.getfile(Server.Mappath("Ol

asp下利用fso实现文件夹或文件移动改名等操作函数_应用技巧

asp利用fso实现文件的移动function movefiles(sFolder,dFolder)     on error resume next     dim fso     set fso = server.createobject("scripting.filesystemobject")     if fso.folderexists(server.mappath(sFolder)) and fso.folderexists(server.mappath(dFolder)

asp下利用fso实现文件夹或文件移动改名等操作函数

asp利用fso实现文件的移动 function movefiles(sFolder,dFolder)     on error resume next     dim fso     set fso = server.createobject("scripting.filesystemobject")     if fso.folderexists(server.mappath(sFolder)) and fso.folderexists(server.mappath(dFolder

vbscript脚本编程教程2利用fso来进行文件操作_vbs

by sssa2000 我们来看一看怎么利用fso来进行文件操作.Fso时vbs里进行文件操作的核心.作为黑客,不管学习什么语言,对文件的操作都应该是要了如指掌的,所以请大家仔细学习. 不说废话,先看fso由哪几个对象组成:   drive对象:包含储存设备的信息,包括硬盘,光驱,ram盘,网络驱动器 drives集合:提供一个物理和逻辑驱动器的列表 file  对象:检查和处理文件 files 集合:提供一个文件夹中的文件列表 folder对象:检查和处理文件夹 folders集合:提供文件夹

asp(vbs)fso OpenTextFile方法参数说明_FSO专题

OpenTextFile是asp语言中的一个方法 打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读.写或追加. object.OpenTextFile(filename[, iomode[, create[, format]]]) 1.方法编辑打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读.写或追加.object.OpenTextFile(filename[, iomode[, create[, format]]])2.参数编

asp(vbs)fso OpenTextFile方法参数说明

OpenTextFile是asp语言中的一个方法 打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读.写或追加. object.OpenTextFile(filename[, iomode[, create[, format]]]) 1.方法编辑打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读.写或追加. object.OpenTextFile(filename[, iomode[, create[, format]]]) 2.参

asp上传图片提示 ADODB.Stream 错误 &#039;800a0bbc&#039;的解决方法

  asp上传图片提示 ADODB.Stream 错误 '800a0bbc' 有这个提示有很多问题导致.权限是常见一种.这个不多说,还有一个有点怪的就是 windows2008显示系统时间的格式竟然是:2013/3/8,而并非是以前的2013-3-8,由于重命名上传的文件是按时间来命名的,本要求为201338,但到windows2008平台上最后变成了2013/3/8,这样则会有一个问题,就是会被当成文件夹和路径处理,最终会导致了真正的不存在目录,最后会写入出错. 解决办法: 经过查看在上传保存