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

ASP教程 2025-08-05

如果你想把自己机器的图片或者文件放到服务器上该怎么办呢? 可选有三种办法1、ftp上传,2、用u盘拷贝到服务器上,3、如果服务器支持asp上传功能,用网页浏览器将文件上传到服务器上。

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

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

upload.htm --上传口文件,选择本地文件 uploadimg.asp --上传程序控制文件 upload_5xsoft.inc --无组件上传类,此文件初学者不用学习,只要会用就可以了

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

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

  1. <%
  2. dimupload,file,filepath
  3. filepath=UPLOAD/
  4. setupload=newupload_5xSoft''建立上传对象
  5. foreachformNameinupload.file''列出所有上传了的文件
  6. setfile=upload.file(formName)''生成一个文件对象
  7. iffile.FileSize>0then''如果FileSize>0说明有文件数据
  8. fname=file.filename
  9. file.SaveAsServer.mappath(filepath&fname)''保存文件
  10. endif
  11. setfile=nothing
  12. next
  13. setupload=nothing''删除此对象

upload_5xsoft.inc内容

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

  1. dimoUpFileStream
  2. Classupload_5xSoft
  3. dimForm,File,Version
  4. PrivateSubClass_Initialize
  5. dimRequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
  6. dimiFileSize,sFilePath,sFileType,sFormvalue,sFileName
  7. dimiFindStart,iFindEnd
  8. dimiFormStart,iFormEnd,sFormName
  9. Version=无组件上传类Version0.93
  10. setForm=Server.CreateObject(Scripting.Dictionary)
  11. setFile=Server.CreateObject(Scripting.Dictionary)
  12. ifRequest.TotalBytes<1thenExitSub
  13. settStream=Server.CreateObject(adodb.stream)
  14. setoUpFileStream=Server.CreateObject(adodb.stream)
  15. oUpFileStream.Type=1
  16. oUpFileStream.Mode=3
  17. oUpFileStream.Open
  18. oUpFileStream.WriteRequest.BinaryRead(Request.TotalBytes)
  19. Response.Write页面执行时间:&FormatNumber((Timer()-time1)*1000,3)&毫秒
  20. oUpFileStream.Position=0
  21. RequestBinDate=oUpFileStream.Read
  22. iFormStart=1
  23. iFormEnd=LenB(RequestBinDate)
  24. bCrLf=chrB(13)&chrB(10)
  25. sStart=MidB(RequestBinDate,1,InStrB(iFormStart,RequestBinDate,bCrLf)-1)
  26. iStart=LenB(sStart)
  27. iFormStart=iFormStart+iStart+1
  28. while(iFormStart+10)
  29. iInfoEnd=InStrB(iFormStart,RequestBinDate,bCrLf&bCrLf)+3
  30. tStream.Type=1
  31. tStream.Mode=3
  32. tStream.Open
  33. oUpFileStream.Position=iFormStart
  34. oUpFileStream.CopyTotStream,iInfoEnd-iFormStart
  35. tStream.Position=0
  36. tStream.Type=2
  37. tStream.Charset=gb2312
  38. sInfo=tStream.ReadText
  39. '取得表单项目名称
  40. iFormStart=InStrB(iInfoEnd,RequestBinDate,sStart)
  41. iFindStart=InStr(22,sInfo,name=,1)+6
  42. iFindEnd=InStr(iFindStart,sInfo,,1)
  43. sFormName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
  44. '如果是文件
  45. ifInStr(45,sInfo,filename=,1)>0then
  46. setoFileInfo=newFileInfo
  47. '取得文件名
  48. iFindStart=InStr(iFindEnd,sInfo,filename=,1)+10
  49. iFindEnd=InStr(iFindStart,sInfo,,1)
  50. sFileName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
  51. oFileInfo.FileName=getFileName(sFileName)
  52. oFileInfo.FilePath=getFilePath(sFileName)
  53. '取得文件类型
  54. iFindStart=InStr(iFindEnd,sInfo,Content-Type:,1)+14
  55. iFindEnd=InStr(iFindStart,sInfo,vbCr)
  56. oFileInfo.FileType=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
  57. oFileInfo.FileStart=iInfoEnd
  58. oFileInfo.FileSize=iFormStart-iInfoEnd-3
  59. oFileInfo.FormName=sFormName
  60. file.addsFormName,oFileInfo
  61. else
  62. '如果是表单项目
  63. tStream.Close
  64. tStream.Type=1
  65. tStream.Mode=3
  66. tStream.Open
  67. oUpFileStream.Position=iInfoEnd
  68. oUpFileStream.CopyTotStream,iFormStart-iInfoEnd-3
  69. tStream.Position=0
  70. tStream.Type=2
  71. tStream.Charset=gb2312
  72. sFormvalue=tStream.ReadText
  73. form.AddsFormName,sFormvalue
  74. endif
  75. tStream.Close
  76. iFormStart=iFormStart+iStart+1
  77. wend
  78. RequestBinDate=
  79. settStream=nothing
  80. EndSub
  81. PrivateSubClass_Terminate
  82. ifnotRequest.TotalBytes<1then
  83. form.RemoveAll
  84. file.RemoveAll
  85. setform=nothing
  86. setfile=nothing
  87. oUpFileStream.Close
  88. setoUpFileStream=nothing
  89. endif
  90. EndSub
  91. PrivatefunctionGetFilePath(FullPath)
  92. IfFullPath<>Then
  93. GetFilePath=left(FullPath,InStrRev(FullPath,))
  94. Else
  95. GetFilePath=
  96. EndIf
  97. Endfunction
  98. PrivatefunctionGetFileName(FullPath)
  99. IfFullPath<>Then
  100. GetFileName=mid(FullPath,InStrRev(FullPath,)+1)
  101. Else
  102. GetFileName=
  103. EndIf
  104. Endfunction
  105. EndClass
  106. ClassFileInfo
  107. dimFormName,FileName,FilePath,FileSize,FileType,FileStart
  108. PrivateSubClass_Initialize
  109. FileName=
  110. FilePath=
  111. FileSize=0
  112. FileStart=0
  113. FormName=
  114. FileType=
  115. EndSub
  116. PublicfunctionSaveAs(FullPath)
  117. dimoFileStream,ErrorChar,i
  118. SaveAs=1
  119. iftrim(fullpath)=orright(fullpath,1)=/thenexitfunction
  120. setoFileStream=CreateObject(Adodb.Stream)
  121. oFileStream.Type=1
  122. oFileStream.Mode=3
  123. oFileStream.Open
  124. oUpFileStream.position=FileStart
  125. oUpFileStream.copytooFileStream,FileSize
  126. oFileStream.SaveToFileFullPath,2
  127. oFileStream.Close
  128. setoFileStream=nothing
  129. SaveAs=0
  130. endfunction
  131. EndClass

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