您的位置:首页 > 编程语言 > ASP

应用最简单的 asp上传文件实例

2010-06-20 20:17 731 查看
应用最简单的 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 一般的上传功能就基本掌握了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: