⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix3_upload_inc.asp

📁 这是ASP的OA
💻 ASP
字号:
<%
dim Data_matrix3
Class matrix3_upload
	dim objForm,objFile,Version
	Public function Form(strForm)
	   	strForm=lcase(strForm)
	   	if not objForm.exists(strForm) then
		 	Form=""
	   	else
		 	Form=objForm(strForm)
	   	end if
	end function
	
	Public function File(strFile)
	   	strFile=lcase(strFile)
	   	if not objFile.exists(strFile) then
		 	set File=new FileInfo
	   	else
		 	set File=objFile(strFile)
	   	end if
	end function
	
	Private Sub Class_Initialize 
		dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
	 	dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
	  	dim iFindStart,iFindEnd
	  	dim iFormStart,iFormEnd,sFormName
	  	Version="Matrix3 upload class Version 1.0"
	  	set objForm=Server.CreateObject("Scripting.Dictionary")
	  	set objFile=Server.CreateObject("Scripting.Dictionary")
	  	if Request.TotalBytes<1 then Exit Sub
	  	set tStream = Server.CreateObject("adodb.stream")
	  	set Data_matrix3 = Server.CreateObject("adodb.stream")
	  	Data_matrix3.Type = 1
	  	Data_matrix3.Mode =3
	  	Data_matrix3.Open
	  	Data_matrix3.Write  Request.BinaryRead(Request.TotalBytes)
	  	Data_matrix3.Position=0
	 	RequestData =Data_matrix3.Read 
	
	 	iFormStart = 1
	  	iFormEnd = LenB(RequestData)
	  	vbCrlf = chrB(13) & chrB(10)
	  	sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)
	  	iStart = LenB (sStart)
	  	iFormStart=iFormStart+iStart+1
	  	while (iFormStart + 10) < iFormEnd 
			iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3
			tStream.Type = 1
			tStream.Mode =3
			tStream.Open
			Data_matrix3.Position = iFormStart
			Data_matrix3.CopyTo tStream,iInfoEnd-iFormStart
			tStream.Position = 0
			tStream.Type = 2
			tStream.Charset ="gb2312"
			sInfo = tStream.ReadText
			tStream.Close
			'取得表单项目名称
			iFormStart = InStrB(iInfoEnd,RequestData,sStart)
			iFindStart = InStr(22,sInfo,"name=""",1)+6
			iFindEnd = InStr(iFindStart,sInfo,"""",1)
			sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))
			'如果是文件
			if InStr (45,sInfo,"filename=""",1) > 0 then
				set theFile=new FileInfo
				'取得文件名
				iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10
				iFindEnd = InStr(iFindStart,sInfo,"""",1)
				sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
				theFile.FileName=getFileName(sFileName)
				theFile.FilePath=getFilePath(sFileName)
				'取得文件类型
				iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14
				iFindEnd = InStr(iFindStart,sInfo,vbCr)
				theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)
				theFile.FileStart =iInfoEnd
				theFile.FileSize = iFormStart -iInfoEnd -3
				theFile.FormName=sFormName
				if not objFile.Exists(sFormName) then
				  objFile.add sFormName,theFile
				end if
			else
			'如果是表单项目
				tStream.Type =1
				tStream.Mode =3
				tStream.Open
				Data_matrix3.Position = iInfoEnd 
				Data_matrix3.CopyTo tStream,iFormStart-iInfoEnd-3
				tStream.Position = 0
				tStream.Type = 2
				tStream.Charset ="gb2312"
					sFormValue = tStream.ReadText 
					tStream.Close
				if objForm.Exists(sFormName) then
				  objForm(sFormName)=objForm(sFormName)&", "&sFormValue		  
				else
				  objForm.Add sFormName,sFormValue
				end if
			end if
				iFormStart=iFormStart+iStart+1
		wend
	  	RequestData=""
	  	set tStream =nothing
	End Sub
	
	Private Sub Class_Terminate  
	 	if Request.TotalBytes>0 then
			objForm.RemoveAll
			objFile.RemoveAll
			set objForm=nothing
			set objFile=nothing
			Data_matrix3.Close
			set Data_matrix3 =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 dr,ErrorChar,i
		SaveAs=true
		if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function
		set dr=CreateObject("Adodb.Stream")
		dr.Mode=3
		dr.Type=1
		dr.Open
		Data_matrix3.position=FileStart
		Data_matrix3.copyto dr,FileSize
		dr.SaveToFile FullPath,2
		dr.Close
		set dr=nothing 
		SaveAs=false
  	end function
End Class
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -