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,因此帖子给了我这篇文章,其中给出了额外的解释: