Asp classic 强制用户下载文件

Asp classic 强制用户下载文件,asp-classic,vbscript,Asp Classic,Vbscript,我想强制用户下载一个文件。我的网站文件夹路径是D:\websites\domain\ 文件路径为E:\folder\file.bak ASP-VBScript <% Dim Stream Dim Contents Dim FileName FileName = "E:\db\A101.bak" Response.ContentType = "application/octet-stream" Response.AddHeader "content-di

我想强制用户下载一个文件。我的网站文件夹路径是
D:\websites\domain\
文件路径为
E:\folder\file.bak

ASP-VBScript

<%

   Dim Stream
   Dim Contents
   Dim FileName
   FileName = "E:\db\A101.bak"
   Response.ContentType = "application/octet-stream"
   Response.AddHeader "content-disposition", "attachment; filename=" & FileName
   Set Stream = server.CreateObject("ADODB.Stream")
   Stream.Open
   Stream.LoadFromFile Server.MapPath(FileName)
   Contents = Stream.ReadText
   Response.BinaryWrite Contents
   Stream.Close
   Set Stream = Nothing

%>


如果文件在我的网站文件夹中,它可以正常工作,但是如果我使用路径E:\db\A101.bak,请给我一个错误,
找不到文件
。由于安全原因,我无法在网站文件夹中移动文件。帮助我

因为您已经知道物理路径,所以不需要Server.MapPath方法。 (此方法通常用于将虚拟路径转换为物理路径) Server.MapPath方法可能不适用于网站结构之外的路径

所以,尝试使用

Stream.LoadFromFile FileName

为什么你要表现得像恶意软件?Web服务器不应该允许访问网站文件夹之外的任何内容。这种行为是故意的。请后退一步,描述你试图解决的问题,而不是你认为的解决方案。他所做的有什么不对?他正在加载一个特定的文件并将其发送给客户机。我认为这背后有一定的原因,可能有一些安全性只允许特定的访问。如果该文件位于网站文件夹中,则可能任何人都可以检索该文件。通常这样的问题是网站运行的用户没有访问此文件夹的权限,但如果您收到的是“未找到文件”错误,则不会。如果这只是提供网站目录之外的文件的情况-您可以选择的另一个选项是IIS虚拟目录:-您可以将虚拟文件夹映射为只读credentails etcQuick check on related,因此帖子给了我这篇文章,其中给出了额外的解释: