天天看點

ASP下載下傳代碼

default ASP

=========

<HTML>

<BODY>

<p><font size="6">P</font><b><font size="6">ls Download Your File</font></b></p>

   <p>========================================================</p>

<%

dim fs,fo,x

set fs=Server.CreateObject("Scripting.FileSystemObject")

set fo=fs.GetFolder("c:\upload\")

for each x in fo.files

  'Print the name of all files in the test folder

  'Response.write(x.Name & "<br />")

  Response.write ( "<a href='load.asp?filename="& x.Name & " '>" & x.Name & "</a> <br>")

next

set fo=nothing

set fs=nothing

%>

</BODY>

</HTML>

=================================

‘讀取某個路徑的檔案夾内的所有檔案并建立連結

load.asp

===============

<% 

'**************************************************************

'**使用方法:                                                **

'**在點選下載下傳處加連接配接<a href="load.asp?filename=檔案名"></a> **

'**陽光白雪——2005年11月21日                                **

'**E-mail:[email protected]                              **

'**HomePage:http://www.toumh.com ;                          **

'**************************************************

'**              實作檔案下載下傳函數                **

Function Filedownload(filename) 

  Dim strchar,fliesend,objectFile,objfile,objStream,path,pathtype

  pathtype = "application/x-msdownload" 

  path = server.MapPath("download/"&filename)

  Const loadfilesize=32768 '32KB,也可取其它值,機關:位元組

  '在給path指派後,其最終值必定是該圖檔在伺服器端存儲器上的絕對路徑,如 C:\Inetpub\wwwroot\pic\help.gif

  '因為 server.MapPath 取得的隻是站點根目錄的路徑,是以在後面還應加上檔案所在的檔案夾再加檔案名

  '例如:要下載下傳的檔案 setup.exe 在根目錄的 download 檔案夾下,則 path = server.MapPath("download/"&filename)

  '***********************************

  '測試用

  'response.Write(path)

  'response.Write(filename)

  'response.End()

  fliesend=0 

  TransferFile = True 

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

  Set objfile = objectFile.GetFile(Path) 

  Set objStream = objfile.OpenAsTextStream(1,-1) 

  Response.AddHeader "content-type", pathtype 

  response.AddHeader "Content-Disposition","attachment;filename="&filename 

  Response.AddHeader "content-length", objfile.Size 

   Do While Not objStream.AtEndOfStream 

     strchar = objStream.Read(1) 

     Response.BinaryWrite(strchar) 

     fliesend = fliesend + 1 

     If (fliesend MOD loadfilesize) = 0 Then 

       Response.Flush 

       If Not Response.IsClientConnected Then 

         TransferFile = False 

         Exit Do 

       End If 

     End If 

   Loop

  Response.Flush 

  If Not Response.IsClientConnected Then

    TransferFile = False

  end if

  objStream.Close 

  Set objStream = Nothing 

  Set objectFile = Nothing 

End Function 

'****************************************************

'**               檔案下載下傳函數結束                 **

Dim fileneme,downloadfile 

filename = request("filename")  '此處的 filename 僅為下載下傳檔案的名稱(包括擴充名)

downloadfile = Filedownload(filename) '調用檔案下載下傳函數

Response.End

本文轉自 bilinyee部落格,原文連結:   http://blog.51cto.com/ericfu/1902039     如需轉載請自行聯系原作者

繼續閱讀