應用最簡單的 asp上傳文件實例

應用最簡單的 asp上傳文件實例

 

如果你想把自己機器的圖片或者文件放到服務器上該怎麼辦呢?

2 用 u 盤拷貝到服務器上,可選有三種辦法 1 ftp 上傳。 3 如果服務器支持 asp 上傳功能,用網頁瀏覽器將文件上傳到服務器上。

今天我講解如何利用 asp 上傳功能將本地的文件上傳到服務器上。

源代碼在附件裏

最簡系統包括下面三個文件

選擇外地文件 upload.htm                      -- 上傳口文件。

uploadimg.asp                 -- 上傳順序控制文件

此文件初學者不用學習,upload_5xsoft.inc            -- 無組件上傳類。只要會用就可以了

****************************

upload.htm 內容

*********

<html>

<head>

</head>

<body>

<t 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 內容

*********

<!--#includ FILE="upload_5xsoft.inc"-->

<%

file,dim upload.filepath

filepath="UPLOAD/"

set upload=new upload_5xSoft '' 建立上傳對象

for each formNam in upload.fil '' 列出所有上傳了文件

 set file=upload.fil formNam   '' 生成一個文件對象

 if file.FileSize>0 then         '' 如果 FileS > 0 說明有文件數據

  fname = file.filename

  file.SaveA Server.mappath filepath&fnam    '' 保管文件

 end if

set file=nothing

next

set upload=nothing  '' 刪除此對象

********************************

本演練應用此類的方法 upload_5xsoft.inc 內容 -- 此文件內容不屬於本演練順序內容。

*********

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>

dim oUpFileStream

Class upload_5xSoft

File,dim Form.Version

 

Privat Sub Class_Initi

sStart,dim RequestBinDate.bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo

sFilePath,dim iFileSize.sFileType,sFormvalue,sFileName

iFindEndim iFindStart.d

iFormEnd,dim iFormStart.sFormName

Version=" 無組件上傳類 Version 0.93"

set Form=Server.CreateObject "Scripting.Dictionary"

set File=Server.CreateObject "Scripting.Dictionary"

if Request.TotalBytes<1 then Exit Sub

set tStream = Server.CreateObject "adodb.stream"

set oUpFileStream = Server.CreateObject "adodb.stream"

oUpFileStream.Typ = 1

oUpFileStream.Mod =3

oUpFileStream.Open

oUpFileStream.Write  Request.BinaryRead Request.TotalByt

3 &" 毫秒 </font><br>Response.Write  "<font size=""2""> 頁面執行時間: "&FormatNumb Timer -time1 *1000."

oUpFileStream.Position=0

RequestBinD =oUpFileStream.Read

iFormStart = 1

iFormEnd = LenB RequestBinD

bCrLf = chrB 13 & chrB 10

1,sStart = MidB RequestBinDate. InStrB iFormStart,RequestBinDate,bCrLf -1

iStart = LenB sStart

iFormStart=iFormStart+iStart+1

whil iFormStart + 10 < iFormEnd

RequestBinDate, iInfoEnd = InStrB iFormStart.bCrLf & bCrLf +3

 tStream.Typ = 1

 tStream.Mod =3

 tStream.Open

 oUpFileStream.Posit = iFormStart

iInfoEnd-iFormStar oUpFileStream.CopyTo tStream.t

 tStream.Posit = 0

 tStream.Typ = 2

 tStream.Charset ="gb2312"

 sInfo = tStream.ReadText     

 ' 取得表單項目名稱

RequestBinDate, iFormStart = InStrB iInfoEnd.sStart

sInfo, iFindStart = InStr 22."name=""",1 +6

sInfo, iFindEnd = InStr iFindStart."""",1

iFindStart, sFormNam = Mid sinfo.iFindEnd-iFindStart

 ' 如果是文件

sInfo, if InStr 45."filename=""",1 > 0 then

  set oFileInfo=new FileInfo

  ' 取得文件名

sInfo,  iFindStart = InStr iFindEnd."filename=""",1 +10

sInfo,  iFindEnd = InStr iFindStart."""",1

iFindStart,  sFileNam = Mid sinfo.iFindEnd-iFindStart

  oFileInfo.FileName=getFileNam sFileNam

  oFileInfo.FilePath=getFilePath sFileNam

  ' 取得文件類型

sInfo,  iFindStart = InStr iFindEnd."Content-Type: ",1 +14

sInfo,  iFindEnd = InStr iFindStart.vbCr

iFindStart,  oFileInfo.FileTyp =Mid sinfo.iFindEnd-iFindStart

  oFileInfo.FileStart =iInfoEnd

  oFileInfo.FileS = iFormStart -iInfoEnd -3

  oFileInfo.FormName=sFormName

oFileInf  file.add sFormName.o

 else

 ' 如果是表單項目

  tStream.Close

  tStream.Typ =1

  tStream.Mod =3

  tStream.Open

  oUpFileStream.Posit = iInfoEnd

iFormStart-iInfoEnd-  oUpFileStream.CopyTo tStream.3

  tStream.Posit = 0

  tStream.Typ = 2

  tStream.Charset ="gb2312"

  sFormvalu = tStream.ReadText

sFormvalu  form.Add sFormName.e

 end if

 tStream.Close

 iFormStart=iFormStart+iStart+1

 wend

RequestBinDate=""

set tStream =nothing

End Sub

Priv 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 if

End Sub

  

 Privat function GetFilePath FullPath

  If FullPath <> "" Then

InStrRev FullPath,   GetFilePath = left FullPath. ""

  Else

   GetFilePath = ""

  End If

 End  function

 Priv function GetFileNam FullPath

  If FullPath <> "" Then

InStrRev FullPath,   GetFileNam = mid FullPath. "" +1

  Else

   GetFileNam = ""

  End If

 End  function

End Class

Class FileInfo

FileName,  dim FormName.FilePath,FileSize,FileType,FileStart

  Privat Sub Class_Initi

    FileNam = ""

    FilePath = ""

    FileS = 0

    FileStart= 0

    FormNam = ""

    FileTyp = ""

  End Sub

 

 Public function SaveA FullPath

ErrorChar,    dim oFileStream.i

    SaveAs=1

1 ="/" then exit functio    if trim fullpath ="" or right fullpath.n

    set oFileStream=CreateObject "Adodb.Stream"

    oFileStream.Type=1

    oFileStream.Mode=3

    oFileStream.Open

    oUpFileStream.position=FileStart

FileSiz    oUpFileStream.copyto oFileStream.e

    oFileStream.SaveToFil FullPath.2

    oFileStream.Close

    set oFileStream=noth

    SaveAs=0

  end function

End Class

</SCRIPT>

************************

和附件裏的內容有所不同,此文所訴的內容是上傳文件的最簡化程式。附件的源代碼加入了一些檢測函數和獲取普通表單的方法 upload.form 不過核心完全一樣,請朋友們自己分析一下,學會本演練, asp 一般的上傳功能就基本掌握了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章