2010年12月13日

以ASP下載檔案

ASP利用ADODB.Stream物件可以進行檔案的下載, 但如果web server的檔案室要透過過網路芳鄰下載, 則要先做 UNC權限設定, 以下是相關程式:

 


filename = "\\192.168.1.1\remote_files\aa.txt" 'UNC檔名

Set fso = Server.CreateObject("Scripting.FileSystemObject")

'簡查檔案是否存在
If fso.FileExists(filename) Then

'取得檔案資料
Set objFile = fso.GetFile(filename)
Response.Clear

'使用者接收設定
Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
Response.AddHeader "Content-Length", objFile.Size
Response.ContentType = "application/octet-stream"

'建立 ADODB Stream 物件
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open

'二進位方式傳送
objStream.Type = 1

'設定編碼
Response.CharSet = "UTF-8"

'載入檔案
objStream.LoadFromFile(filename)

'二進為方式傳送
Response.BinaryWrite(objStream.Read)

'完成,關閉物件
objStream.Close
Set objStream = Nothing
Set objFile = Nothing
Else

Response.Clear
Response.Write("檔案不存在")

End If
Set fso = Nothing
Response.End

沒有留言:

張貼留言