时间:2023-10-13 点击: 次 来源:网络 添加者:佚名 - 小 + 大
先创建一文件夹,并创建虚拟目录或站长点。 1.增加上传页xAdd.html 无组件上传 "POST"name="myform"action="xSave.asp"target="_self"> "PicPath"type="text"id="PicPath"readonly="true"> "sPicPath"type="hidden"id="sPicPath"> ""id="objimg"style="display:none;"/> 2.上传页upload.htm "Content-Type"content="text/html; charset=gb2312"> function check_file() { var strFileName=form.FileName.value; if(strFileName=="") { alert("请选择要上传的文件"); returnfalse; } } "0"topmargin="0"> "upfile.asp"method="post"name="form1"enctype="multipart/form-data"> "FileName"type="FILE"class="tx1"size="20"onChange="window.parent.document.getElementById('objimg').src=this.value;window.parent.document.getElementById('objimg').style.display='';"> "submit"name="Submit"value="上传"> 3.上传保存代码页upfile.asp Const MaxFileSize=300 '上传文件大小限制单位k Const UpFileType="gif|jpg|bmp|png"'允许的上传文件类型 setfs=createobject("scripting.filesystemobject") %> "Content-Type"content="text/html; charset=gb2312"> call upload_0() '使用化境无组件上传类 %> sub upload_0() '使用化境无组件上传类 setupload=newupload_file '建立上传对象 foreach formNameinupload.file '列出所有上传了的文件 setfile=upload.file(formName) '生成一个文件对象 iffile.filesize<100 then msg="请先选择你要上传的文件!" founderr=true endif iffile.filesize>(MaxFileSize*1024) then msg="文件大小超过了限制,最大只能上传"& CStr(MaxFileSize) &"K的文件!" founderr=true endif fileExt=lcase(file.FileExt) Forumupload=split(UpFileType,"|") fori=0 to ubound(Forumupload) iffileEXT=trim(Forumupload(i)) then EnableUpload=true exitfor endif next iffileEXT="asp"or fileEXT="asa"or fileEXT="aspx"then EnableUpload=false endif ifEnableUpload=falsethen msg="这种文件类型不允许上传!/n/n只允许上传这几种文件类型:"& UpFileType response.write"" founderr=true endif strJS="" response.write strJS setfile=nothing next setupload=nothing end sub %> 4.upload.asp页 '---------------------------------------------------------------------- '转发时请保留此声明信息,这段声明不并会影响你的速度! '******************* 无组件上传类 ******************************** '声明:此上传类是在化境编程界发布的无组件上传类的基础上修改的. '在与化境编程界无组件上传类相比,速度快了将近50倍,当上传4M大小的文件时 '服务器只需要10秒就可以处理完,是目前最快的无组件上传程序,当前版本为0.96 '源代码公开,免费使用,对于商业用途,请与作者联系 '文件属性:例如上传文件为c:/myfile/doc.txt 'FileName 文件名 字符串"doc.txt" 'FileSize 文件大小 数值 1210 'FileType 文件类型 字符串"text/plain" 'FileExt 文件扩展名 字符串"txt" 'FilePath 文件原路径 字符串"c:/myfile" '使用时注意事项: '由于Scripting.Dictionary区分大小写,所以在网页及ASP页的项目名都要相同的大小 '写,如果人习惯用大写或小写,为了防止出错的话,可以把 'sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) '改为 '(小写者)sFormName = LCase(Mid (sinfo,iFindStart,iFindEnd-iFindStart)) '(大写者)sFormName = UCase(Mid (sinfo,iFindStart,iFindEnd-iFindStart)) '********************************************************************** '---------------------------------------------------------------------- dim oUpFileStream Class upload_file 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.96" setForm = Server.CreateObject("Scripting.Dictionary") setFile = Server.CreateObject("Scripting.Dictionary") ifRequest.TotalBytes settStream = Server.CreateObject("adodb.stream") setoUpFileStream = Server.CreateObject("adodb.stream") oUpFileStream.Type = 1 oUpFileStream.Mode = 3 oUpFileStream.Open oUpFileStream.Write Request.BinaryRead(Request.TotalBytes) oUpFileStream.Position=0 RequestBinDate = oUpFileStream.Read iFormEnd = oUpFileStream.Size bCrLf = chrB(13) & chrB(10) '取得每个项目之间的分隔符 sStart = MidB(RequestBinDate,1, InStrB(1,RequestBinDate,bCrLf)-1) iStart = LenB (sStart) iFormStart = iStart+2 '分解项目 Do 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)-1 iFindStart = InStr(22,sInfo,"name=""",1)+6 iFindEnd = InStr(iFindStart,sInfo,"""",1) sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) '如果是文件 ifInStr (45,sInfo,"filename=""",1) > 0 then setoFileInfo=newFileInfo '取得文件属性 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) oFileInfo.FileExt = GetFileExt(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 -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 form.Add sFormName,sFormvalue endif tStream.Close iFormStart = iFormStart+iStart+2 '如果到文件尾了就退出 loop until (iFormStart+2) = iFormEnd RequestBinDate="" settStream = nothing End Sub Private Sub Class_Terminate '清除变量及对像 ifnot Request.TotalBytes<1 then oUpFileStream.Close setoUpFileStream =nothing endif Form.RemoveAll File.RemoveAll setForm=nothing setFile=nothing 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 '取得扩展名 Private function GetFileExt(FullPath) If FullPath <>""Then GetFileExt = mid(FullPath,InStrRev(FullPath,".")+1) Else GetFileExt ="" End If End function End Class '文件属性类 Class FileInfo dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt Private Sub Class_Initialize FileName ="" FilePath ="" FileSize = 0 FileStart= 0 FormName ="" FileType ="" FileExt ="" End Sub '保存文件方法 Public function SaveToFile(FullPath) dim oFileStream,ErrorChar,i SaveToFile=1 iftrim(fullpath)=""or right(fullpath,1)="/"then exit function setoFileStream=CreateObject("Adodb.Stream") oFileStream.Type=1 oFileStream.Mode=3 oFileStream.Open oUpFileStream.position=FileStart oUpFileStream.copyto oFileStream,FileSize oFileStream.SaveToFile FullPath,2 oFileStream.Close setoFileStream=nothing SaveToFile=0 end function End Class %> asp html 生成图片 asp无 |
上一篇:Asp无组件生成图片
下一篇:Asp无组件生成缩略图的代码