服务器之家

服务器之家 > 正文

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

时间:2019-09-17 13:17     来源/作者:asp教程网
  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. %> 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-07-24
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部