首页 asp实现上传功能的源码演示(简单易懂)

asp实现上传功能的源码演示(简单易懂)

举报
开通vip

asp实现上传功能的源码演示(简单易懂)asp无组件上传图片的源码分析及下载 要实现图片的上传功能其实非常简单,只需要四个文件与一个文件夹即可实现。 第一个文件:Upload.asp 这个文件的源代码如下: 说明:这个文件将引用一个名为upload_Photo.asp的文件也就是下面要讲的第二个文件作为框架,同时这里传递一个PhotoUrlID参数给upload_Photo.asp这个文件的form1表单中的名为PhotoUrlID的隐藏域名,其值为1 第二个文件:Upload_Photo.asp,这个文件的源代码如...

asp实现上传功能的源码演示(简单易懂)
asp无组件上传图片的源码分析及下载 要实现图片的上传功能其实非常简单,只需要四个文件与一个文件夹即可实现。 第一个文件:Upload.asp 这个文件的源代码如下:
说明:这个文件将引用一个名为upload_Photo.asp的文件也就是下面要讲的第二个文件作为框架,同时这里传递一个PhotoUrlID参数给upload_Photo.asp这个文件的form1 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 单中的名为PhotoUrlID的隐藏域名,其值为1 第二个文件:Upload_Photo.asp,这个文件的源代码如下:
">
说明:这个是作为第一个文件Upload.asp的框架文件,注意这里的FileName的文本框是用于接受上传成功之后图片的地址 第三个文件:Upfile_Photo.asp,其源代码如下: <% const upload_type=0 '上传方法:0=无惧无组件上传类,1=FSO上传 2=lyfupload,3=aspupload,4=chinaaspupload dim upload,oFile,formName,SavePath,filename,fileExt,oFileSize dim EnableUpload dim arrUpFileType dim ranNum dim msg,FoundErr dim PhotoUrlID msg="" FoundErr=false EnableUpload=false %> <% if EnableUploadFile="No" then response.write "系统未开放文件上传功能" else select case upload_type case 0 call upload_0() '使用化境无组件上传类 case else 'response.write "本系统未开放插件功能" 'response.end end select end if %> <% sub upload_0() '使用化境无组件上传类 set upload=new upfile_class ''建立上传对象 upload.GetData(104857600) '取得上传数据,限制最大上传100M if upload.err > 0 then '如果出错 select case upload.err case 1 response.write "请先选择你要上传的文件!" case 2 response.write "你上传的文件总大小超出了最大限制(200k)" end select response.end end if PhotoUrlID=Clng(trim(upload.form("PhotoUrlID"))) if PhotoUrlID>0 then SavePath = "UploadFiles" '存放上传文件的目录 else SavePath = "UploadFiles" '存放上传文件的目录 end if if right(SavePath,1)<>"/" then SavePath=SavePath&"/" '在目录后加(/) for each formName in upload.file '列出所有上传了的文件 set ofile=upload.file(formName) '生成一个文件对象 oFileSize=ofile.filesize if oFileSize<100 then msg="请先选择你要上传的文件!" FoundErr=True else select case PhotoUrlID case 0 if oFileSize>(MaxFileSize*1024) then msg="文件大小超过了限制,最大只能上传" & CStr(MaxFileSize) & "K的文件!" FoundErr=true end if case 1 if oFileSize>(10000*1024) then msg="文件大小超过了限制,最大只能上传10M的文件!" FoundErr=true end if end select end if fileExt=lcase(ofile.FileExt) arrUpFileType=split("gif|jpg|bmp|png|swf|doc|rar|xls","|")'如需添加其它类型的文档请在这里添加文档后缀名 for i=0 to ubound(arrUpFileType) if fileEXT=trim(arrUpFileType(i)) then EnableUpload=true exit for end if next if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then EnableUpload=false end if if EnableUpload=false then msg="这种文件类型不允许上传!\n\n只允许上传这几种文件类型:" & "gif|jpg|bmp|png|swf|doc|rar|xls" FoundErr=true end if strJS="" & vbcrlf response.write strJS set file=nothing next set upload=nothing end sub %> 第四个文件upfile_class.asp,源代码如下 <% Dim oUpFileStream '---------------------------------------------------------------------- '文件上传类 Class UpFile_Class Dim Form,File,Version,Err Private Sub Class_Initialize Version = "无惧上传类 Version V1.2" Err = -1 End Sub Private Sub Class_Terminate '清除变量及对像 If Err < 0 Then Form.RemoveAll Set Form = Nothing File.RemoveAll Set File = Nothing oUpFileStream.Close Set oUpFileStream = Nothing End If End Sub Public Sub GetData (MaxSize) '定义变量 Dim RequestBinData,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo Dim iFileSize,sFilePath,sFileType,sFormValue,sFileName Dim iFindStart,iFindEnd Dim iFormStart,iFormEnd,sFormName '代码开始 If Request.TotalBytes < 1 Then '如果没有数据上传 Err = 1 Exit Sub End If If MaxSize > 0 Then '如果限制大小 If Request.TotalBytes > MaxSize Then Err = 2 '如果上传的数据超出限制 Exit Sub End If End If Set Form = Server.CreateObject ("Scripting.Dictionary") Form.CompareMode = 1 Set File = Server.CreateObject ("Scripting.Dictionary") File.CompareMode = 1 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) oUpFileStream.Position = 0 RequestBinData = oUpFileStream.Read iFormEnd = oUpFileStream.Size bCrLf = ChrB (13) & ChrB (10) '取得每个项目之间的分隔符 sSpace = MidB (RequestBinData,1, InStrB (1,RequestBinData,bCrLf)-1) iStart = LenB (sSpace) iFormStart = iStart+2 '分解项目 Do iInfoEnd = InStrB (iFormStart,RequestBinData,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,RequestBinData,sSpace)-1 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_Class '取得文件属性 iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10 iFindEnd = InStr (iFindStart,sInfo,"""",1) sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) oFileInfo.FileName = Mid (sFileName,InStrRev (sFileName, "\")+1) oFileInfo.FilePath = Left (sFileName,InStrRev (sFileName, "\")) oFileInfo.FileExt = Mid (sFileName,InStrRev (sFileName, ".")+1) 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 -2 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-2 tStream.Position = 0 tStream.Type = 2 tStream.CharSet = "gb2312" sFormValue = tStream.ReadText If Form.Exists (sFormName) Then Form (sFormName) = Form (sFormName) & ", " & sFormValue else form.Add sFormName,sFormValue End If End If tStream.Close iFormStart = iFormStart+iStart+2 '如果到文件尾了就退出 Loop Until (iFormStart+2) >= iFormEnd RequestBinData = "" Set tStream = Nothing End Sub End Class '------------------------------------------------------------------------------ '文件属性类 Class FileInfo_Class Dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt '保存文件方法 Public Function SaveToFile (Path) if lcase((right(Path,3))<>lcase(FileExt)) then '经典的上传漏洞^_^ response.Write ("") response.end end if On Error Resume Next Dim oFileStream Set oFileStream = CreateObject ("ADODB.Stream") oFileStream.Type = 1 oFileStream.Mode = 3 oFileStream.Open oUpFileStream.Position = FileStart oUpFileStream.CopyTo oFileStream,FileSize oFileStream.SaveToFile Path,2 oFileStream.Close Set oFileStream = Nothing End Function '取得文件数据 Public Function FileData oUpFileStream.Position = FileStart FileData = oUpFileStream.Read (FileSize) End Function End Class %> 除了上面四个文件夹之外还需要一个名为UploadFiles的文件夹,注意以上的四个文件与文件夹都是放在网站根目录下,也就是同极目录下的,如果目录不同级,请修改路径,同时本程序不仅可以包括jpg,png,gif等类型的图片,还可以上传word、EXECL、记事本、RAR压缩包等,当然上传对大小是有限的,只限定在200K以内,如果超过200K将会出错.
本文档为【asp实现上传功能的源码演示(简单易懂)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_279939
暂无简介~
格式:doc
大小:49KB
软件:Word
页数:17
分类:互联网
上传时间:2013-06-25
浏览量:27