首页 > 编程 > ASP > 正文

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

2024-05-04 11:10:02
字体:
来源:转载
供稿:网友

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

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

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

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

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

 

 
  1. <html> 
  2. <head> 
  3. </head> 
  4.  
  5. <body> 
  6. <table width="80%" border="0" align="center"
  7. <form name="form1" method="post" action="uploadimg.asp" enctype="multipart/form-data"
  8. <tr> 
  9. <td align="center"><input name="upfile" type="file" id="upfile"></td> 
  10. </tr> 
  11. <tr> 
  12. <td align="center"><input type="submit" name="Submit" value="上传图片"></td> 
  13. </tr> 
  14. </form> 
  15. </table> 
  16. </body> 
  17. </html> 

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

 

 
  1. <!--#include FILE="upload_5xsoft.inc"--> 
  2. <% 
  3. dim upload,file,filepath 
  4. filepath="UPLOAD/" 
  5. set upload=new upload_5xSoft ''建立上传对象 
  6. for each formName in upload.file ''列出所有上传了的文件 
  7. set file=upload.file(formName) ''生成一个文件对象 
  8. if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据 
  9. fname = file.filename 
  10. file.SaveAs Server.mappath(filepath&fname) ''保存文件 
  11. end if 
  12. set file=nothing 
  13. next 
  14. set upload=nothing ''删除此对象 

upload_5xsoft.inc内容

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

 

 
  1. <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> 
  2. dim oUpFileStream 
  3.  
  4. Class upload_5xSoft 
  5.  
  6. dim Form,File,Version 
  7.  
  8. Private Sub Class_Initialize  
  9. dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo 
  10. dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName 
  11. dim iFindStart,iFindEnd 
  12. dim iFormStart,iFormEnd,sFormName 
  13. Version="无组件上传类 Version 0.93" 
  14. set Form=Server.CreateObject("Scripting.Dictionary"
  15. set File=Server.CreateObject("Scripting.Dictionary"
  16. if Request.TotalBytes<1 then Exit Sub 
  17. set tStream = Server.CreateObject("adodb.stream"
  18. set oUpFileStream = Server.CreateObject("adodb.stream"
  19. oUpFileStream.Type = 1 
  20. oUpFileStream.Mode =3 
  21. oUpFileStream.Open 
  22. oUpFileStream.Write Request.BinaryRead(Request.TotalBytes) 
  23. Response.Write "<font size=""2"">页面执行时间:"&FormatNumber((Timer() -time1)*1000,3)&"毫秒</font><br>" 
  24. oUpFileStream.Position=0 
  25. RequestBinDate =oUpFileStream.Read  
  26. iFormStart = 1 
  27. iFormEnd = LenB(RequestBinDate) 
  28. bCrLf = chrB(13) & chrB(10) 
  29. sStart = MidB(RequestBinDate,1, InStrB(iFormStart,RequestBinDate,bCrLf)-1) 
  30. iStart = LenB (sStart) 
  31. iFormStart=iFormStart+iStart+1 
  32. while (iFormStart + 10) < iFormEnd  
  33. iInfoEnd = InStrB(iFormStart,RequestBinDate,bCrLf & bCrLf)+3 
  34. tStream.Type = 1 
  35. tStream.Mode =3 
  36. tStream.Open 
  37. oUpFileStream.Position = iFormStart 
  38. oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart 
  39. tStream.Position = 0 
  40. tStream.Type = 2 
  41. tStream.Charset ="gb2312" 
  42. sInfo = tStream.ReadText  
  43. '取得表单项目名称 
  44. iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart) 
  45. iFindStart = InStr(22,sInfo,"name=""",1)+6 
  46. iFindEnd = InStr(iFindStart,sInfo,"""",1) 
  47. sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
  48. '如果是文件 
  49. if InStr (45,sInfo,"filename=""",1) > 0 then 
  50. set oFileInfo=new FileInfo 
  51. '取得文件名 
  52. iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10 
  53. iFindEnd = InStr(iFindStart,sInfo,"""",1) 
  54. sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
  55. oFileInfo.FileName=getFileName(sFileName) 
  56. oFileInfo.FilePath=getFilePath(sFileName) 
  57. '取得文件类型 
  58. iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14 
  59. iFindEnd = InStr(iFindStart,sInfo,vbCr) 
  60. oFileInfo.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
  61. oFileInfo.FileStart =iInfoEnd 
  62. oFileInfo.FileSize = iFormStart -iInfoEnd -3 
  63. oFileInfo.FormName=sFormName 
  64. file.add sFormName,oFileInfo 
  65. else 
  66. '如果是表单项目 
  67. tStream.Close 
  68. tStream.Type =1 
  69. tStream.Mode =3 
  70. tStream.Open 
  71. oUpFileStream.Position = iInfoEnd  
  72. oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-3 
  73. tStream.Position = 0 
  74. tStream.Type = 2 
  75. tStream.Charset ="gb2312" 
  76. sFormvalue = tStream.ReadText  
  77. form.Add sFormName,sFormvalue 
  78. end if 
  79. tStream.Close 
  80. iFormStart=iFormStart+iStart+1 
  81. wend 
  82. RequestBinDate="" 
  83. set tStream =nothing 
  84. End Sub 
  85.  
  86. Private Sub Class_Terminate  
  87. if not Request.TotalBytes<1 then 
  88. form.RemoveAll 
  89. file.RemoveAll 
  90. set form=nothing 
  91. set file=nothing 
  92. oUpFileStream.Close 
  93. set oUpFileStream =nothing 
  94. end if 
  95. End Sub 
  96.  
  97.  
  98. Private function GetFilePath(FullPath) 
  99. If FullPath <> "" Then 
  100. GetFilePath = left(FullPath,InStrRev(FullPath, "")) 
  101. Else 
  102. GetFilePath = "" 
  103. End If 
  104. End function 
  105.  
  106. Private function GetFileName(FullPath) 
  107. If FullPath <> "" Then 
  108. GetFileName = mid(FullPath,InStrRev(FullPath, "")+1) 
  109. Else 
  110. GetFileName = "" 
  111. End If 
  112. End function 
  113.  
  114. End Class 
  115.  
  116. Class FileInfo 
  117. dim FormName,FileName,FilePath,FileSize,FileType,FileStart 
  118. Private Sub Class_Initialize  
  119. FileName = "" 
  120. FilePath = "" 
  121. FileSize = 0 
  122. FileStart= 0 
  123. FormName = "" 
  124. FileType = "" 
  125. End Sub 
  126.  
  127. Public function SaveAs(FullPath) 
  128. dim oFileStream,ErrorChar,i 
  129. SaveAs=1 
  130. if trim(fullpath)="" or right(fullpath,1)="/" then exit function 
  131. set oFileStream=CreateObject("Adodb.Stream"
  132. oFileStream.Type=1 
  133. oFileStream.Mode=3 
  134. oFileStream.Open 
  135. oUpFileStream.position=FileStart 
  136. oUpFileStream.copyto oFileStream,FileSize 
  137. oFileStream.SaveToFile FullPath,2 
  138. oFileStream.Close 
  139. set oFileStream=nothing  
  140. SaveAs=0 
  141. end function 
  142. End Class 
  143. </SCRIPT> 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表