佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 用asp實(shí)現(xiàn)文件瀏覽、上傳、下載的程序

用asp實(shí)現(xiàn)文件瀏覽、上傳、下載的程序

熱門(mén)標(biāo)簽:團(tuán)購(gòu)網(wǎng)站 服務(wù)器配置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 銀行業(yè)務(wù) Linux服務(wù)器 電子圍欄 Mysql連接數(shù)設(shè)置 阿里云
可以放在服務(wù)器上,對(duì)服務(wù)器上的文件進(jìn)行瀏覽、上傳、下載,可下載文件源碼。
把下所有代碼入在一個(gè)文件里即可,文件的后綴要為asp。
復(fù)制代碼 代碼如下:


thedir = request("thedir") 
if thedir = "" then 
 folderini = server.mappath(".")"\" 
else 
 folderini = server.mappath(thedir)"\" 
end if 

foldinfo=trim(Request.Querystring("foldinfo")) 
if foldinfo = "" then 
 foldinfo = folderini 
end if 

class clsUp 
Dim Form,File 
Dim AllowExt_  
Dim NoAllowExt_  
Private oUpFileStream  
Private isErr_   
Private ErrMessage_  
Private isGetData_  

Public Property Get Version 
 Version="v1.0.0" 
End Property 

Public Property Get isErr 
 isErr=isErr_ 
End Property 

Public Property Get ErrMessage 
 ErrMessage=ErrMessage_ 
End Property 

Public Property Get AllowExt 
 AllowExt=AllowExt_ 
End Property 

Public Property Let AllowExt(Value)  
 AllowExt_=LCase(Value) 
End Property 

Public Property Get NoAllowExt 
 NoAllowExt=NoAllowExt_ 
End Property 

Public Property Let NoAllowExt(Value) 
 NoAllowExt_=LCase(Value) 
End Property 

Private Sub Class_Initialize 
 isErr_ = 0 
 NoAllowExt=""   
 NoAllowExt=LCase(NoAllowExt) 
 AllowExt=""   
 AllowExt=LCase(AllowExt) 
 isGetData_=false 
End Sub 

Private Sub Class_Terminate  
 on error Resume Next 

 Form.RemoveAll 
 Set Form = Nothing 
 File.RemoveAll 
 Set File = Nothing 
 oUpFileStream.Close 
 Set oUpFileStream = Nothing 
End Sub 

Public Sub GetData (MaxSize) 

 on error Resume Next 
 if isGetData_=false then  
  Dim getupdata1,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo 
  Dim sFormValue,sFileName 
  Dim iFindStart,iFindEnd 
  Dim iFormStart,iFormEnd,sFormName 

  If Request.TotalBytes  1 Then  
   isErr_ = 1 
   ErrMessage_="" 
   Exit Sub 
  End If 
  If MaxSize > 0 Then  
   If Request.TotalBytes > MaxSize Then 
   isErr_ = 2  
   ErrMessage_="" 
   Exit Sub 
   End If 
  End If 
  Set Form = Server.CreateObject ("Scripting.Dictionary") 
  Form.CompareMode = 1 
  Set File = Server.CreateObject ("Scripting.Dictionary") 
  File.CompareMode = 1 
  Set tStream = Server.CreateObject ("ADODB.Stream") 
  Set oUpFileStream = Server.CreateObject ("ADODB.Stream") 
  oUpFileStream.Type = 1 
  oUpFileStream.Mode = 3 
  oUpFileStream.Open  
  oUpFileStream.Write Request.BinaryRead (Request.TotalBytes) 
  oUpFileStream.Position = 0 
  getupdata1 = oUpFileStream.Read  
  iFormEnd = oUpFileStream.Size 
  bCrLf = ChrB (13)  ChrB (10) 

  sSpace = MidB (getupdata1,1, InStrB (1,getupdata1,bCrLf)-1) 
  iStart = LenB(sSpace) 
  iFormStart = iStart+2 

  Do 
   iInfoEnd = InStrB (iFormStart,getupdata1,bCrLf  bCrLf)+3 
   tStream.Type = 1 
   tStream.Mode = 3 
   tStream.Open 
   oUpFileStream.Position = iFormStart 
   oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart 
   tStream.Position = 0 
   tStream.Type = 2 
   tStream.CharSet = "gb2312" 
   sInfo = tStream.ReadText    

   iFormStart = InStrB (iInfoEnd,getupdata1,sSpace)-1 
   iFindStart = InStr (22,sInfo,"name=""",1)+6 
   iFindEnd = InStr (iFindStart,sInfo,"""",1) 
   sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 

   If InStr (45,sInfo,"filename=""",1) > 0 Then 
    Set oFileInfo = new clsFileInfo 

    iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10 
    iFindEnd = InStr (iFindStart,sInfo,""""vbCrLf,1) 
    sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
    oFileInfo.FileName = GetFileName(sFileName) 
    oFileInfo.FilePath = GetFilePath(sFileName) 
    oFileInfo.FileExt = GetFileExt(sFileName) 
    iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14 
    iFindEnd = InStr (iFindStart,sInfo,vbCr) 
    oFileInfo.FileMIME = Mid(sinfo,iFindStart,iFindEnd-iFindStart) 
    oFileInfo.FileStart = iInfoEnd 
    oFileInfo.FileSize = iFormStart -iInfoEnd -2 
    oFileInfo.FormName = sFormName 
    file.add sFormName,oFileInfo 
   else 

    tStream.Close 
    tStream.Type = 1 
    tStream.Mode = 3 
    tStream.Open 
    oUpFileStream.Position = iInfoEnd  
    oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2 
    tStream.Position = 0 
    tStream.Type = 2 
    tStream.CharSet = "gb2312" 
    sFormValue = tStream.ReadText 
    If Form.Exists (sFormName) Then 
     Form (sFormName) = Form (sFormName)  ", "  sFormValue 
     else 
     Form.Add sFormName,sFormValue 
    End If 
   End If 
   tStream.Close 
   iFormStart = iFormStart+iStart+2 

  Loop Until (iFormStart+2) >= iFormEnd  
  getupdata1 = "" 
  Set tStream = Nothing 
  isGetData_=true 
 end if 
End Sub 

Public Function SaveToFile(Item,Path) 
 SaveToFile=SaveToFileEx(Item,Path,True) 
End Function 

Public Function AutoSave(Item,Path) 
 AutoSave=SaveToFileEx(Item,Path,false) 
End Function 

Private Function SaveToFileEx(Item,Path,Over) 
 On Error Resume Next 
 Dim oFileStream 
 Dim tmpPath 
 Dim nohack 
 isErr=0 
 Set oFileStream = CreateObject ("ADODB.Stream") 
 oFileStream.Type = 1 
 oFileStream.Mode = 3 
 oFileStream.Open 
 oUpFileStream.Position = File(Item).FileStart 
 oUpFileStream.CopyTo oFileStream,File(Item).FileSize 
 nohack=split(path,".") 
 tmpPath=nohack(0)"."nohack(ubound(nohack)) 
 if Over then 
  if isAllowExt(GetFileExt(tmpPath)) then 
   oFileStream.SaveToFile tmpPath,2 
   Else 
   isErr_=3 
   ErrMessage_="!" 
  End if 
 Else 
  Path=GetFilePath(Path) 
  if isAllowExt(File(Item).FileExt) then 
   do 
    Err.Clear() 
    nohack=split(PathGetNewFileName()"."File(Item).FileExt,".")  
    tmpPath=nohack(0)"."nohack(ubound(nohack)) 
    oFileStream.SaveToFile tmpPath 
   loop Until Err.number1 
   oFileStream.SaveToFile Path 
   Else 
   isErr_=3 
   ErrMessage_="該后綴名的文件不允許上傳!" 
  End if 
 End if 
 oFileStream.Close 
 Set oFileStream = Nothing 
 if isErr_=3 then SaveToFileEx="" else SaveToFileEx=GetFileName(tmpPath) 
End Function 

'取得文件數(shù)據(jù) 
Public Function FileData(Item) 
 isErr_=0 
 if isAllowExt(File(Item).FileExt) then 
  oUpFileStream.Position = File(Item).FileStart 
  FileData = oUpFileStream.Read (File(Item).FileSize) 
  Else 
  isErr_=3 
  ErrMessage_="" 
  FileData="" 
 End if 
End Function 

Public function GetFilePath(FullPath) 
  If FullPath > "" Then 
    GetFilePath = Left(FullPath,InStrRev(FullPath, "\")) 
    Else 
    GetFilePath = "" 
  End If 
End function 

Public Function GetFileName(FullPath) 
  If FullPath > "" Then 
    GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1) 
    Else 
    GetFileName = "" 
  End If 
End function 

Public Function GetFileExt(FullPath) 
  If FullPath > "" Then 
    GetFileExt = LCase(Mid(FullPath,InStrRev(FullPath, ".")+1)) 
    Else 
    GetFileExt = "" 
  End If 
End function 

Public Function GetNewFileName() 
 dim ranNum 
 dim dtNow 
 dtNow=Now() 
 ranNum=int(90000*rnd)+10000 
 GetNewFileName=year(dtNow)  right("0"  month(dtNow),2)  right("0"  day(dtNow),2)  right("0"  hour(dtNow),2)  right("0"  minute(dtNow),2)  right("0"  second(dtNow),2)  ranNum 
End Function 

Public Function isAllowExt(Ext) 
 if NoAllowExt="" then 
  isAllowExt=cbool(InStr(1,";"AllowExt";",LCase(";"Ext";"))) 
 else 
  isAllowExt=not CBool(InStr(1,";"NoAllowExt";",LCase(";"Ext";"))) 
 end if 
End Function 
End Class 

Class clsFileInfo 
Dim FormName,FileName,FilePath,FileSize,FileMIME,FileStart,FileExt 
End Class 
%> 



function deletefile(filename) 
 set objfilesys=server.createobject("scripting.filesystemobject") 
 ss=filename 
 ss=foldinfoss 
 if objfilesys.FILEExists(ss) then 
 objfilesys.deleteFILE ss 
 end if 
end function 

function deletedir(dirname) 
 set objfilesys=server.createobject("scripting.filesystemobject") 
 ss=dirnameidd 
 ss=server.mappath(ss) 
 if objfilesys.FOLDERExists(ss) then 
 objfilesys.deleteFOLDER ss 
 end if 
end function 

function download(filename) 
 Response.Buffer = true   
 Response.Clear   

 dim  url   
 Dim  fso,fl,flsize   
 dim  Dname   
 Dim  objStream,ContentType,flName,isre,url1   

 Dname=filename   

 If  Dname>""  Then   
  url=foldinfoDname 
 End  If   

 Set fso=Server.CreateObject("Scripting.FileSystemObject")   
 Set fl=fso.getfile(url)   
 flsize=fl.size   
 flName=fl.name   
 Set fl=Nothing   
 Set fso=Nothing   

 Set objStream=Server.CreateObject("ADODB.Stream")   
 objStream.Open   
 objStream.Type=1   
 objStream.LoadFromFile url   

 ContentType="text/html"   

 Response.AddHeader  "Content-Disposition","attachment;filename="flName   
 Response.AddHeader  "Content-Length",  flsize   
 Response.Charset  =  "UTF-8"   
 Response.ContentType  =  ContentType   
 Response.BinaryWrite  objStream.Read   
 Response.Flush   
 response.Clear()   
 objStream.Close 
 Set objStream = Nothing   
end function 

function uploadfiles() 
filepath=foldinfo   
set upload=new clsUp  
upload.NoAllowExt="aep" 
upload.GetData (3072000) 

if upload.form("act")="uploadfile" then 
 for each formName in upload.File 
  set file=upload.File(formName) 
  randomize 
  filename1=file.FileName 
  filename=filepathfilename1 

  if file.FileSize>0 then 
   upload.SaveToFile formName,FileName 
  end if 
  set file=nothing 
 next 
 set upload=nothing 
end if 
end function 


action = request("action") 
if action = "deletefile" then 
 filename = request("filename") 
 deletefile(filename) 
end if 

if action = "deletedir" then 
 deletedirname = request("deletedir") 
 deletedir(deletedirname) 
end if 

if action = "download" then 
 filename = request("filename") 
 download(filename) 
end if 

if action = "uploadfiles" then 
 uploadfiles() 
end if 
%> 

html> 
head> 
meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
/head> 
body> 
table> 
  tr> 
    td>font>當(dāng)前目錄:/font>font color="#FF7120">%=foldinfo%>/font> 

    form name="form1" method="post" action="?foldinfo=%=foldinfo%>action=uploadfiles" enctype="multipart/form-data"> 
        input type="hidden" name="act" value="uploadfile"> 
        input type="file" name="file1" style="width:300'" class="tx1" value=""> 
        input type="submit" name="Submit" value="上傳" class="button"> 
  /form> 

    /td> 
  /tr> 
  tr> 
    td>  
      hr size="1"> 
    /td> 
  /tr> 
  tr> 
    td>  
      table width="750" border="0" cellspacing="1" cellpadding="1"> 
        tr bgcolor="#00CC00">  
          td width="300" >Folder/td> 
          td width="180" >Size/td> 
          td width="200" >LastTime/td> 
          td width="100" >Operate/td> 
        /tr> 
      /table> 
    /td> 
  /tr> 
  tr>  
    td align="right" >  
      % 
            upfolder=left(foldinfo,len(foldinfo)-1) 
            upfolder=left(upfolder,InstrRev(upfolder, "\")) 
            if foldinfo>folderini then  
        response.write("a href='?foldinfo="upfolder"'>Go Back/a>") 
        else  
        response.write("Go Back") 
        end if%> 
    /td> 
  /tr> 
  tr>  
    td >  
      % ShowFolderList(foldinfo) %> 
    /td> 
  /tr> 
  tr>  
    td >  
      table width="750" border="0" cellspacing="1" cellpadding="1"> 
        tr bgcolor="#009999">  
          td width="300">File/td> 
          td width="180">Size/td> 
          td width="200">LastTime/td> 
          td width="100">Operate/td> 
        /tr> 
      /table> 
    /td> 
  /tr> 
  tr>  
    td >  
      % showfolderinfo(foldinfo)%> 
    /td> 
  /tr> 
  tr>  
    td> /td> 
  /tr> 
/table> 

Sub ShowFolderList(folderspec) 
    Dim fs, f, f1, fc, s, schild,p,fsize 
    Set fs = CreateObject("scripting.FileSystemObject") 
    Set f = fs.GetFolder(folderspec) 
    Set fc = f.SubFolders 
    For Each f1 in fc 
            s = f1.name 
            's = s   vbCrLf 
        p = f1.DateLastModified 
        fsize = f1.Size 
            schild=folderspecs"\" 

Response.write("table width='750' border='0' cellspacing='1' cellpadding='1'>") 
Response.write("tr>") 
Response.write("td width='300' bgcolor='#ECFFD9'>font face='Wingdings' font size='3pt'>0/font>a href='?foldinfo="schild"'>"s"/a>/td>") 
Response.write("td width='180' bgcolor='#ECFFD9'>"fsize"/td>") 
Response.write("td width='200' bgcolor='#ECFFD9'>"p"/td>") 
Response.write("td width='100' bgcolor='#ECFFD9'>") 
Response.write("a href=?foldinfo="foldinfo"action=deletedirdeletedir="s">DEL/a>") 
Response.write("/td>") 

Response.write("/tr>") 
Response.write("/table>") 

    Next 
End Sub 

Sub showfolderinfo(folderspc) 
set MyFileObject=Server.CreateObject("scripting.FileSystemObject") 


Set MyFolder=MyFileObject.GetFolder(folderspc) 

for each thing in MyFolder.Files 
    Set afile=MyFileObject.GetFile(thing) 
    filenamecode=afile.name 
    filedetail=folderspc+filenamecode 
    filedetail=replace(filedetail,"\","*s_p_l_i_t*") 
    filesize=afile.size 
    lastmodify=afile.DateLastModified 

Response.write("table width='750' border='0' cellspacing='1' cellpadding='1'>") 
Response.write("tr>") 
Response.write("td width='300' bgcolor='#f4f4ff'>font face='Wingdings' font size='3pt'>2/font>"filenamecode"/td>") 
Response.write("td width='180' bgcolor='#f4f4ff'>"filesize"/td>") 
Response.write("td width='200' bgcolor='#f4f4ff'>"lastmodify"/td>") 
Response.write("td width='100' bgcolor='#f4f4ff'>") 
Response.write("a href=?foldinfo="foldinfo"action=deletefilefilename="filenamecode">DEL/a> ") 
Response.write("a href=?foldinfo="foldinfo"action=downloadfilename="filenamecode">DL/a>") 
Response.write("/td>") 
Response.write("/tr>") 
Response.write("/table>") 
Next 
End sub 
%> 
/body> 
/html> 

您可能感興趣的文章:
  • Jsp頁(yè)面實(shí)現(xiàn)文件上傳下載類(lèi)代碼
  • asp.net Web Services上傳和下載文件(完整代碼)
  • Flex與.NET互操作 使用FileReference+HttpHandler實(shí)現(xiàn)文件上傳/下載
  • asp.net 多文件上傳,兼容IE6/7/8,提供完整代碼下載
  • Asp.net實(shí)現(xiàn)MVC處理文件的上傳下載功能實(shí)例教程
  • JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
  • JAVA使用commos-fileupload實(shí)現(xiàn)文件上傳與下載實(shí)例解析
  • 使用pcs api往免費(fèi)的百度網(wǎng)盤(pán)上傳下載文件的方法
  • Java FTPClient實(shí)現(xiàn)文件上傳下載
  • C++文件上傳、下載工具

標(biāo)簽:萍鄉(xiāng) 廣元 大理 衡水 棗莊 江蘇 衢州 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用asp實(shí)現(xiàn)文件瀏覽、上傳、下載的程序》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢(xún)

    • 400-1100-266
    建昌县| 讷河市| 堆龙德庆县| 定安县| 双牌县| 济南市| 上栗县| 东乌| 茂名市| 长乐市| 轮台县| 莱州市| 察哈| 盘锦市| 沙坪坝区| 克东县| 东乡县| 青川县| 西昌市| 阿坝| 彰化县| 香河县| 尼勒克县| 桃园县| 景谷| 沧源| 环江| 丰台区| 于田县| 阳新县| 天台县| 类乌齐县| 饶平县| 闽侯县| 吉木萨尔县| 阳山县| 牡丹江市| 韩城市| 顺义区| 辽阳市| 嘉鱼县|