应用最简单的 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 一般的上传功能就基本掌握了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值