"目标另存为...."命令来下载文档,但这样毕竟不太友好,本文描述了利用FSO及Stream方法实" />
服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - ASP教程 - ASP实现文件直接下载的代码

ASP实现文件直接下载的代码

2019-09-17 13:17asp教程网 ASP教程

在IE进行文档链接时,如果遇到OLE支持的文档,IE会自动调用相应程序打开它,有时候这种功能并不是我们所需的,虽然我们可以提醒用户用鼠标右键-->"目标另存为...."命令来下载文档,但这样毕竟不太友好,本文描述了利用FSO及Stream方法实

  1. <%@ language=vbscript codepage=65001%>  
  2. <%  
  3. 'Filename must be input  
  4. if Request("Filename")="" then  
  5. response.write "<h1>Error:</h1>Filename is empty!<p>"  
  6. else  
  7. call downloadFile(replace(replace(Request("Filename"),"\",""),"/",""))  
  8.  
  9. Function downloadFile(strFile)  
  10. ' make sure you are on the latest MDAC version for this to work  
  11. ' get full path of specified file  
  12. strFilename = server.MapPath(strFile)  
  13.  
  14. ' clear the buffer  
  15. Response.Buffer = True  
  16. Response.Clear  
  17.  
  18. ' create stream  
  19. Set s = Server.CreateObject("ADODB.Stream")  
  20. s.Open  
  21.  
  22. ' Set as binary  
  23. s.Type = 1  
  24.  
  25. ' load in the file  
  26. on error resume next  
  27.  
  28. ' check the file exists  
  29. Set fso = Server.CreateObject("Scripting.FileSystemObject")  
  30. if not fso.FileExists(strFilename) then  
  31. Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>")  
  32. Response.End  
  33. end if  
  34.  
  35. ' get length of file  
  36. Set f = fso.GetFile(strFilename)  
  37. intFilelength = f.size  
  38.  
  39. s.LoadFromFile(strFilename)  
  40. if err then  
  41. Response.Write("<h1>Error: </h1>Unknown Error!<p>")  
  42. Response.End  
  43. end if  
  44. ' send the headers to the users Browse  
  45. Response.AddHeader "Content-Disposition","attachment; filename="&f.name  
  46. Response.AddHeader "Content-Length",intFilelength  
  47. Response.CharSet = "UTF-8"  
  48. Response.ContentType = "application/octet-stream"  
  49. ' output the file to the browser  
  50. Response.BinaryWrite s.Read  
  51. Response.Flush  
  52. ' tidy up  
  53. s.Close  
  54. Set s = Nothing  
  55. End Function  
  56. end if  
  57. %> 

延伸 · 阅读

精彩推荐
北京塞车全天计划精准版