asp將本地的檔案上傳到伺服器_實用技巧

來源:互聯網
上載者:User

今天我們講解如何利用asp的上傳功能將本地的檔案上傳到伺服器上。
最簡系統包括下面三個檔案:

upload.htm                         --上傳口檔案,選擇本地檔案
uploadimg.asp                  --上傳程式控制檔案
upload_5xsoft.inc            --無組件上傳類,此檔案初學者不用學習,只要會用就可以了

upload.htm內容————上傳口檔案,選擇本地檔案

<html><head></head><body><table width="80%" border="0" align="center"><form name="form1" method="post" action="uploadimg.asp" enctype="multipart/form-data"><tr>  <td align="center"><input name="upfile" type="file" id="upfile"></td> </tr>   <tr>  <td align="center"><input type="submit" name="Submit" value="上傳圖片"></td> </tr> </form></table></body></html>

uploadimg.asp內容————上傳程式控制檔案

<!--#include FILE="upload_5xsoft.inc"--><%dim upload,file,filepathfilepath="UPLOAD/"set upload=new upload_5xSoft ''建立上傳對象for each formName in upload.file ''列出所有上傳了的檔案 set file=upload.file(formName) ''產生一個檔案對象 if file.FileSize>0 then     ''如果 FileSize > 0 說明有檔案資料 fname = file.filename file.SaveAs Server.mappath(filepath&fname)  ''儲存檔案 end ifset file=nothingnextset upload=nothing ''刪除此對象

upload_5xsoft.inc內容————此檔案內容不屬於本演練程式內容,本演練應用此類的方法

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>dim oUpFileStreamClass upload_5xSoft dim Form,File,Version Private Sub Class_Initialize dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfodim iFileSize,sFilePath,sFileType,sFormvalue,sFileNamedim iFindStart,iFindEnddim iFormStart,iFormEnd,sFormNameVersion="無組件上傳類 Version 0.93"set Form=Server.CreateObject("Scripting.Dictionary")set File=Server.CreateObject("Scripting.Dictionary")if Request.TotalBytes<1 then Exit Subset tStream = Server.CreateObject("adodb.stream")set oUpFileStream = Server.CreateObject("adodb.stream")oUpFileStream.Type = 1oUpFileStream.Mode =3oUpFileStream.OpenoUpFileStream.Write Request.BinaryRead(Request.TotalBytes)Response.Write "<font size=""2"">頁面執行時間:"&FormatNumber((Timer() -time1)*1000,3)&"毫秒</font><br>"oUpFileStream.Position=0RequestBinDate =oUpFileStream.Read iFormStart = 1iFormEnd = LenB(RequestBinDate)bCrLf = chrB(13) & chrB(10)sStart = MidB(RequestBinDate,1, InStrB(iFormStart,RequestBinDate,bCrLf)-1)iStart = LenB (sStart)iFormStart=iFormStart+iStart+1while (iFormStart + 10) < iFormEnd  iInfoEnd = InStrB(iFormStart,RequestBinDate,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,RequestBinDate,sStart) 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 FileInfo '取得檔案名稱 iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10 iFindEnd = InStr(iFindStart,sInfo,"""",1) sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) oFileInfo.FileName=getFileName(sFileName) oFileInfo.FilePath=getFilePath(sFileName) '取得檔案類型 iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14 iFindEnd = InStr(iFindStart,sInfo,vbCr) oFileInfo.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart) oFileInfo.FileStart =iInfoEnd oFileInfo.FileSize = iFormStart -iInfoEnd -3 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-3 tStream.Position = 0 tStream.Type = 2 tStream.Charset ="gb2312" sFormvalue = tStream.ReadText  form.Add sFormName,sFormvalue end if tStream.Close iFormStart=iFormStart+iStart+1 wendRequestBinDate=""set tStream =nothingEnd SubPrivate Sub Class_Terminate if not Request.TotalBytes<1 then form.RemoveAll file.RemoveAll set form=nothing set file=nothing oUpFileStream.Close set oUpFileStream =nothing end ifEnd Sub    Private function GetFilePath(FullPath) If FullPath <> "" Then  GetFilePath = left(FullPath,InStrRev(FullPath, "")) Else  GetFilePath = "" End If End function  Private function GetFileName(FullPath) If FullPath <> "" Then  GetFileName = mid(FullPath,InStrRev(FullPath, "")+1) Else  GetFileName = "" End If End functionEnd ClassClass FileInfo dim FormName,FileName,FilePath,FileSize,FileType,FileStart Private Sub Class_Initialize   FileName = ""  FilePath = ""  FileSize = 0  FileStart= 0  FormName = ""  FileType = "" End Sub  Public function SaveAs(FullPath)  dim oFileStream,ErrorChar,i  SaveAs=1  if trim(fullpath)="" or right(fullpath,1)="/" then exit function  set oFileStream=CreateObject("Adodb.Stream")  oFileStream.Type=1  oFileStream.Mode=3  oFileStream.Open  oUpFileStream.position=FileStart  oUpFileStream.copyto oFileStream,FileSize  oFileStream.SaveToFile FullPath,2  oFileStream.Close  set oFileStream=nothing   SaveAs=0 end functionEnd Class</SCRIPT>

此文所訴的內容是上傳檔案的最簡化程式,請朋友們自己分析一下,學會本演練,asp一般的上傳功能就基本掌握了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.