asp如何将本地的文件上传到服务器
创始人
2024-11-28 19:25:24
0次

今天我们讲解如何利用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一般的上传功能就基本掌握了

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...