applet在線上繪圖,允許在瀏覽器上繪圖,最後儲存成各式的圖檔

源代码在线查看: upload.asp

软件大小: 245 K
上传用户: RR15133422795
关键词: applet
下载地址: 免注册下载 普通下载 VIP

相关代码

								'***************************************
				' File:	  Upload.asp
				' Author: Jacob "Beezle" Gilley
				' Email:  avis7@airmail.net
				' Date:   12/07/2000
				' Comments: The code for the Upload, CByteString, 
				'			CWideString	subroutines was originally 
				'			written by Philippe Collignon...or so 
				'			he claims. Also, I am not responsible
				'			for any ill effects this script may
				'			cause and provide this script "AS IS".
				'			Enjoy!
				'****************************************
				
				Class FileUploader
					Public  Files
					Private mcolFormElem
				
					Private Sub Class_Initialize()
						Set Files = Server.CreateObject("Scripting.Dictionary")
						Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
					End Sub
					
					Private Sub Class_Terminate()
						If IsObject(Files) Then
							Files.RemoveAll()
							Set Files = Nothing
						End If
						If IsObject(mcolFormElem) Then
							mcolFormElem.RemoveAll()
							Set mcolFormElem = Nothing
						End If
					End Sub
				
					Public Property Get Form(sIndex)
						Form = ""
						If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
					End Property
				
					Public Default Sub Upload()
						Dim biData, sInputName
						Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
						Dim nPosFile, nPosBound
				
						biData = Request.BinaryRead(Request.TotalBytes)
						nPosBegin = 1
						nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
						
						If (nPosEnd-nPosBegin) 						    Response.BinaryWrite "Multipart separator is not found" & vbCrLf
						    Exit Sub
						End If
						 
						vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
						nDataBoundPos = InstrB(1, biData, vDataBounds)
						
						Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))
							
							nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
							nPos = InstrB(nPos, biData, CByteString("name="))
							nPosBegin = nPos + 6
							nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
							sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
							nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
							nPosBound = InstrB(nPosEnd, biData, vDataBounds)
							
							If nPosFile  0 And  nPosFile < nPosBound Then
								Dim oUploadFile, sFileName
								Set oUploadFile = New UploadedFile
								
								nPosBegin = nPosFile + 10
								nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))
								sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
								oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))
				
								nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
								nPosBegin = nPos + 14
								nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
								
								oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
								
								nPosBegin = nPosEnd+4
								nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
								oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
								
								If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
							Else
								nPos = InstrB(nPos, biData, CByteString(Chr(13)))
								nPosBegin = nPos + 4
								nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
								If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
							End If
				
							nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
						Loop
					End Sub
				
					'String to byte string conversion
					Private Function CByteString(sString)
						Dim nIndex
						For nIndex = 1 to Len(sString)
						   CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
						Next
					End Function
				
					'Byte string to string conversion
					Private Function CWideString(bsString)
						Dim nIndex
						CWideString =""
						For nIndex = 1 to LenB(bsString)
						   CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) 
						Next
					End Function
				End Class
				
				Class UploadedFile
					Public ContentType
					Public FileName
					Public FileData
					
					Public Property Get FileSize()
						FileSize = LenB(FileData)
					End Property
				
					Public Sub SaveToDisk(sPath)
						Dim oFS, oFile
						Dim nIndex
					
						If sPath = "" Or FileName = "" Then Exit Sub
						If Mid(sPath, Len(sPath))  "\" Then sPath = sPath & "\"
					
						Set oFS = Server.CreateObject("Scripting.FileSystemObject")
						If Not oFS.FolderExists(sPath) Then Exit Sub
						
						Set oFile = oFS.CreateTextFile(sPath & FileName, True)
						
						For nIndex = 1 to LenB(FileData)
						    oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
						Next
				
						oFile.Close
					End Sub
				
					Public Sub SaveAs(NewFileName)
						Dim oFS, oFile
						Dim nIndex
				
						Set oFS = Server.CreateObject("Scripting.FileSystemObject")
						
						Set oFile = oFS.CreateTextFile(NewFileName, True)
						
						For nIndex = 1 to LenB(FileData)
						    oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
						Next
				
						oFile.Close
					End Sub
					
					Public Sub SaveToDatabase(ByRef oField)
						If LenB(FileData) = 0 Then Exit Sub
						
						If IsObject(oField) Then
							oField.AppendChunk FileData
						End If
					End Sub
				
				End Class
				%>			

相关资源