加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp将本地的文件上传至服务器

发布时间:2023-05-10 13:49:11 所属栏目:Asp教程 来源:
导读:如果你想把自己机器的图片或者文件放到服务器上该怎么办呢? 可选有三种办法1、ftp上传,2、用u盘拷贝到服务器上,3、如果服务器支持asp上传功能,用网页浏览器将文件上传到服务器上。

今天我们讲解如何利用asp的
如果你想把自己机器的图片或者文件放到服务器上该怎么办呢? 可选有三种办法1、ftp上传,2、用u盘拷贝到服务器上,3、如果服务器支持asp上传功能,用网页浏览器将文件上传到服务器上。
 
今天我们讲解如何利用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,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内容
 
————此文件内容不属于本演练程序内容,本演练应用此类的方法

 
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
 
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 "<font size=""2"">页面执行时间:"&FormatNumber((Timer() -time1)*1000,3)&"毫秒</font><br>"
 
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
 
</SCRIPT>
 
此文所诉的内容是上传文件的最简化程式,请朋友们自己分析一下,学会本演练,asp一般的上传功能就基本掌握了
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章