asp.net文件上传到服务器,asp将本地的文件上传到服务器

今天我们讲解如何利用asp的上传功能将本地的文件上传到服务器上。

最简系统包括下面三个文件:

upload.htm                         --上传口文件,选择本地文件

uploadimg.asp                  --上传程序控制文件

upload_5xsoft.inc            --无组件上传类,此文件初学者不用学习,只要会用就可以了

upload.htm内容————上传口文件,选择本地文件

uploadimg.asp内容————上传程序控制文件

dim upload,file,filepath

filepath="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 if

set file=nothing

next

set upload=nothing ''删除此对象

upload_5xsoft.inc内容————此文件内容不属于本演练程序内容,本演练应用此类的方法

dim oUpFileStream

Class upload_5xSoft

dim Form,File,Version

Private Sub Class_Initialize

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

dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName

dim iFindStart,iFindEnd

dim iFormStart,iFormEnd,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.Type = 1

oUpFileStream.Mode =3

oUpFileStream.Open

oUpFileStream.Write Request.BinaryRead(Request.TotalBytes)

Response.Write "页面执行时间:"&FormatNumber((Timer() -time1)*1000,3)&"毫秒
"

oUpFileStream.Position=0

RequestBinDate =oUpFileStream.Read

iFormStart = 1

iFormEnd = LenB(RequestBinDate)

bCrLf = chrB(13) & chrB(10)

sStart = MidB(RequestBinDate,1, InStrB(iFormStart,RequestBinDate,bCrLf)-1)

iStart = LenB (sStart)

iFormStart=iFormStart+iStart+1

while (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

wend

RequestBinDate=""

set tStream =nothing

End Sub

Private 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

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 function

End Class

Class 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 function

End Class

此文所诉的内容是上传文件的最简化程式,请朋友们自己分析一下,学会本演练,asp一般的上传功能就基本掌握了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值