2012-10-07 152 views
1

我想強制用戶下載文件。我的網站文件夾路徑是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給我一個錯誤,File not Found。由於安全原因,我無法在網站文件夾中移動文件。幫助我

+0

爲什麼在這裏投票呢? – pedrofurla

+1

你爲什麼試圖像惡意軟件一樣行事? –

+0

Web服務器不應該訪問網站文件夾以外的任何內容。此行爲是設計使然。請退後一步,描述您嘗試解決的問題,而不是您認爲的解決方案。 –

回答

2

既然你已經知道你的物理路徑,你不需要Server.MapPath方法。 (此方法通常用於將虛擬路徑轉換爲物理路徑) 的方法使用Server.Mappath可能不會對網站的結構之外的路徑工作...

所以,儘量使用

Stream.LoadFromFile FileName 
+0

快速檢查相關SO帖子給了我這個帖子,給出了額外的解釋:http://stackoverflow.com/questions/3422270/how-to-use-服務器在MapPath到獲得-位置外網站文件夾,在-ASP網 – AardVark71