发新话题
打印

如何调用右键菜单上的“目标另存为”或直接保存文件

如何调用右键菜单上的“目标另存为”或直接保存文件

利用ADODB.Stream使用浏览器下载服务器文件      

download.asp?file=相对路径的文件  
就可以把这个文件下载下来  

<%   

call  downloadFile(replace(replace(Request("file"),"\",""),"/",""))   

Function  downloadFile(strFile)   
'  make  sure  you  are  on  the  latest  MDAC  version  for  this  to  work

TOP

'  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  &  "  文件不存在<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>"  文件下载错误  "<p>")   
Response.End   
end  if   

'  send  the  headers  to  the  users  browser   
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   

%>

TOP

发新话题