亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? upload.asp

?? OFFICE辦公自動化
?? ASP
?? 第 1 頁 / 共 2 頁
字號:
<%
'-----------------------------------------------------
' 描述: Asp無組件上傳帶進度條
' 作者: 寶玉(www.webuc.net)
' 鏈接: www.pspsoft.com, www.cnforums.net, blog.joycode.com, www.cnblogs.com, www.51js.com
' 版本: 1.0 Beta
' 版權: 本作品可免費使用,但是請勿移除版權信息
' 推薦: asp.net上傳組件(http://www.upload4asp.net/)
'-----------------------------------------------------

Dim DoteyUpload_SourceData

Class DoteyUpload
	
	Public Files
	Public Form
	Public MaxTotalBytes
	Public Version
	Public ProgressID
	Public ErrMsg
	
	Private BytesRead
	Private ChunkReadSize
	Private Info
	Private Progress

	Private UploadProgressInfo
	Private CrLf

	Private Sub Class_Initialize()
		Set Files = Server.CreateObject("Scripting.Dictionary")	' 上傳文件集合
		Set Form = Server.CreateObject("Scripting.Dictionary")	' 表單集合
		UploadProgressInfo = "DoteyUploadProgressInfo"  ' Application的Key
		MaxTotalBytes = 1 *1024 *1024 *1024 ' 默認最大1G
		ChunkReadSize = 64 * 1024	' 分塊大小64K
		CrLf = Chr(13) & Chr(10)	' 換行

		Set DoteyUpload_SourceData = Server.CreateObject("ADODB.Stream")
		DoteyUpload_SourceData.Type = 1 ' 二進制流
		DoteyUpload_SourceData.Open

		Version = "1.0 Beta"	' 版本
		ErrMsg = ""	' 錯誤信息
		Set Progress = New ProgressInfo

	End Sub

	' 將文件根據其文件名統一保存在某路徑下
	Public Sub SaveTo(path)
		
		Upload()	' 上傳

		if right(path,1) <> "/" then path = path & "/" 

		' 遍歷所有已上傳文件
		For Each fileItem In Files.Items			
			fileItem.SaveAs path & fileItem.FileName
		Next

		' 保存結束后更新進度信息
		Progress.ReadyState = "complete" '上傳結束
		UpdateProgressInfo progressID

	End Sub

	' 分析上傳的數據,并保存到相應集合中
	Public Sub Upload ()

		Dim TotalBytes, Boundary
		TotalBytes = Request.TotalBytes	 ' 總大小
		If TotalBytes < 1 Then
			Raise("無數據傳入")
			Exit Sub
		End If
		If TotalBytes > MaxTotalBytes Then
			Raise("您當前上傳大小為" & TotalBytes/1000 & " K,最大允許為" & MaxTotalBytes/1024 & "K")
			Exit Sub
		End If
		Boundary = GetBoundary()
		If IsNull(Boundary) Then 
			Raise("如果form中沒有包括multipart/form-data上傳是無效的")
			Exit Sub	 ''如果form中沒有包括multipart/form-data上傳是無效的
		End If
		Boundary = StringToBinary(Boundary)
		
		Progress.ReadyState = "loading" '開始上傳
		Progress.TotalBytes = TotalBytes
		UpdateProgressInfo progressID

		Dim DataPart, PartSize
		BytesRead = 0

		'循環分塊讀取
		Do While BytesRead < TotalBytes

			'分塊讀取
			PartSize = ChunkReadSize
			if PartSize + BytesRead > TotalBytes Then PartSize = TotalBytes - BytesRead
			DataPart = Request.BinaryRead(PartSize)
			BytesRead = BytesRead + PartSize

			DoteyUpload_SourceData.Write DataPart

			Progress.UploadedBytes = BytesRead
			Progress.LastActivity = Now()

			' 更新進度信息
			UpdateProgressInfo progressID

		Loop

		' 上傳結束后更新進度信息
		Progress.ReadyState = "loaded" '上傳結束
		UpdateProgressInfo progressID

		Dim Binary
		DoteyUpload_SourceData.Position = 0
		Binary = DoteyUpload_SourceData.Read

		Dim BoundaryStart, BoundaryEnd, PosEndOfHeader, IsBoundaryEnd
		Dim Header, bFieldContent
		Dim FieldName
		Dim File
		Dim TwoCharsAfterEndBoundary

		BoundaryStart = InStrB(Binary, Boundary)
		BoundaryEnd = InStrB(BoundaryStart + LenB(Boundary), Binary, Boundary, 0)

		Do While (BoundaryStart > 0 And BoundaryEnd > 0 And Not IsBoundaryEnd)
			' 獲取表單頭的結束位置
			PosEndOfHeader = InStrB(BoundaryStart + LenB(Boundary), Binary, StringToBinary(vbCrLf + vbCrLf))
						
			' 分離表單頭信息,類似于:
			' Content-Disposition: form-data; name="file1"; filename="G:\homepage.txt"
			' Content-Type: text/plain
			Header = BinaryToString(MidB(Binary, BoundaryStart + LenB(Boundary) + 2, PosEndOfHeader - BoundaryStart - LenB(Boundary) - 2))

			' 分離表單內容
			bFieldContent = MidB(Binary, (PosEndOfHeader + 4), BoundaryEnd - (PosEndOfHeader + 4) - 2)
			
			FieldName = GetFieldName(Header)
			' 如果是附件
			If InStr (Header,"filename=""") > 0 Then
				Set File = New FileInfo
				
				' 獲取文件相關信息
				Dim clientPath
				clientPath = GetFileName(Header)
				File.FileName = GetFileNameByPath(clientPath)
				File.FileExt = GetFileExt(clientPath)
				File.FilePath = clientPath
				File.FileType = GetFileType(Header)
				File.FileStart = PosEndOfHeader + 3
				File.FileSize = BoundaryEnd - (PosEndOfHeader + 4) - 2
				File.FormName = FieldName

				' 如果該文件不為空并不存在該表單項保存之
				If Not Files.Exists(FieldName) And File.FileSize > 0 Then
					Files.Add FieldName, File
				End If
			'表單數據				
			Else
				' 允許同名表單
				If Form.Exists(FieldName) Then
					Form(FieldName) = Form(FieldName) & "," & BinaryToString(bFieldContent)
				Else
					Form.Add FieldName, BinaryToString(bFieldContent)
				End If
			End If

			' 是否結束位置
			TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, BoundaryEnd + LenB(Boundary), 2))
			IsBoundaryEnd = TwoCharsAfterEndBoundary = "--"

			If Not IsBoundaryEnd Then ' 如果不是結尾, 繼續讀取下一塊
				BoundaryStart = BoundaryEnd
				BoundaryEnd = InStrB(BoundaryStart + LenB(Boundary), Binary, Boundary)
			End If
		Loop
		
		' 解析文件結束后更新進度信息
		Progress.UploadedBytes = TotalBytes
		Progress.ReadyState = "interactive" '解析文件結束
		UpdateProgressInfo progressID

	End Sub

	'異常信息
	Private Sub Raise(Message)
		ErrMsg = ErrMsg & "[" & Now & "]" & Message & "<BR>"
		
		Progress.ErrorMessage = Message
		UpdateProgressInfo ProgressID
		
		'call Err.Raise(vbObjectError, "DoteyUpload", Message)

	End Sub

	' 取邊界值
	Private Function GetBoundary()
		Dim ContentType, ctArray, bArray
		ContentType = Request.ServerVariables("HTTP_CONTENT_TYPE")
		ctArray = Split(ContentType, ";")
		If Trim(ctArray(0)) = "multipart/form-data" Then
			bArray = Split(Trim(ctArray(1)), "=")
			GetBoundary = "--" & Trim(bArray(1))
		Else	'如果form中沒有包括multipart/form-data上傳是無效的
			GetBoundary = null
			Raise("如果form中沒有包括multipart/form-data上傳是無效的")
		End If
	End Function

	' 將二進制流轉化成文本
	Private Function BinaryToString(xBinary)
		Dim Binary
		if vartype(xBinary) = 8 then Binary = MultiByteToBinary(xBinary) else Binary = xBinary
		
	  Dim RS, LBinary
	  Const adLongVarChar = 201
	  Set RS = CreateObject("ADODB.Recordset")
	  LBinary = LenB(Binary)
		
		if LBinary>0 then
			RS.Fields.Append "mBinary", adLongVarChar, LBinary
			RS.Open
			RS.AddNew
				RS("mBinary").AppendChunk Binary 
			RS.Update
			BinaryToString = RS("mBinary")
		Else
			BinaryToString = ""
		End If
	End Function


	Function MultiByteToBinary(MultiByte)
	  Dim RS, LMultiByte, Binary
	  Const adLongVarBinary = 205
	  Set RS = CreateObject("ADODB.Recordset")
	  LMultiByte = LenB(MultiByte)
		if LMultiByte>0 then
			RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
			RS.Open
			RS.AddNew
				RS("mBinary").AppendChunk MultiByte & ChrB(0)
			RS.Update
			Binary = RS("mBinary").GetChunk(LMultiByte)
		End If
	  MultiByteToBinary = Binary
	End Function


	' 字符串到二進制
	Function StringToBinary(String)
		Dim I, B
		For I=1 to len(String)
			B = B & ChrB(Asc(Mid(String,I,1)))
		Next
		StringToBinary = B
	End Function

	'返回表單名
	Private Function GetFieldName(infoStr)
		Dim sPos, EndPos
		sPos = InStr(infoStr, "name=")
		EndPos = InStr(sPos + 6, infoStr, Chr(34) & ";")
		If EndPos = 0 Then
			EndPos = inStr(sPos + 6, infoStr, Chr(34))
		End If
		GetFieldName = Mid(infoStr, sPos + 6, endPos - _
			(sPos + 6))
	End Function

	'返回文件名
	Private Function GetFileName(infoStr)
		Dim sPos, EndPos
		sPos = InStr(infoStr, "filename=")
		EndPos = InStr(infoStr, Chr(34) & CrLf)
		GetFileName = Mid(infoStr, sPos + 10, EndPos - _
			(sPos + 10))
	End Function

	'返回文件的 MIME type
	Private Function GetFileType(infoStr)
		sPos = InStr(infoStr, "Content-Type: ")
		GetFileType = Mid(infoStr, sPos + 14)
	End Function

	'根據路徑獲取文件名
	Private Function GetFileNameByPath(FullPath)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合一区在线| 一区二区三区四区亚洲| 亚洲mv在线观看| 成人深夜视频在线观看| 日韩色在线观看| 亚洲综合视频网| 91在线播放网址| 久久精品欧美一区二区三区不卡| 首页国产丝袜综合| 色婷婷av一区二区三区gif| 欧美激情一区二区| 久久99精品一区二区三区三区| 欧美午夜影院一区| 1000部国产精品成人观看| 国产盗摄一区二区三区| 日韩美女视频一区二区在线观看| 成人av午夜电影| 久久这里只有精品首页| 免费在线观看成人| 欧美日韩黄视频| 亚洲一区欧美一区| 日本道免费精品一区二区三区| 欧美国产成人在线| 成人综合婷婷国产精品久久| 精品少妇一区二区三区日产乱码 | 欧美丰满少妇xxxbbb| 亚洲欧美激情在线| 99久久久国产精品免费蜜臀| 国产喂奶挤奶一区二区三区| 精品中文字幕一区二区小辣椒 | 国产1区2区3区精品美女| 欧美一区二区三区白人| 午夜精品久久久久久| 欧美性色欧美a在线播放| 一区二区三区精品在线观看| 一本大道久久精品懂色aⅴ| 国产精品家庭影院| 99这里只有久久精品视频| 国产精品视频第一区| 成人丝袜18视频在线观看| 中文字幕不卡在线播放| a美女胸又www黄视频久久| 中文字幕佐山爱一区二区免费| 97精品超碰一区二区三区| 亚洲私人黄色宅男| 日本一区二区久久| 成人av电影免费观看| 日韩一区在线看| 色综合天天综合网天天看片| 亚洲综合色噜噜狠狠| 欧美日韩中字一区| 日韩在线一区二区三区| 91精品在线免费观看| 日韩精品91亚洲二区在线观看| 91精品国产综合久久国产大片| 蜜桃精品视频在线观看| 337p日本欧洲亚洲大胆精品 | 亚洲一区二区三区四区在线观看 | 亚洲最新视频在线播放| 欧美日韩美少妇| 日日摸夜夜添夜夜添亚洲女人| 日韩精品一区二区三区在线| 国产黄色精品网站| 亚洲视频免费在线| 欧美日韩国产高清一区二区三区| 日韩av一二三| 国产人成一区二区三区影院| 91视频91自| 日韩成人一级片| 久久久精品一品道一区| 91欧美激情一区二区三区成人| 91在线观看视频| 无吗不卡中文字幕| 2023国产精品视频| 91在线免费播放| 日韩和欧美一区二区三区| 26uuu精品一区二区在线观看| 成人动漫一区二区在线| 五月婷婷激情综合| 国产亚洲一区二区三区四区 | 国产一区二区调教| 日韩美女视频一区二区| 日韩一区二区在线观看视频| 国产成+人+日韩+欧美+亚洲| 亚洲综合久久久| 精品国产乱码久久久久久图片 | 丁香婷婷深情五月亚洲| 亚洲一区二区美女| 26uuu色噜噜精品一区| 色婷婷激情综合| 黄色小说综合网站| 亚洲色图欧美在线| 日韩女优av电影| 色婷婷av一区二区三区gif | 亚洲精品国产精品乱码不99| 日韩欧美你懂的| 色呦呦一区二区三区| 精品在线你懂的| 一区二区三区日韩在线观看| 日韩欧美综合一区| 91性感美女视频| 久久99国内精品| 亚洲一区二区三区精品在线| 国产日韩精品一区二区三区在线| 欧美三级韩国三级日本一级| 成人免费不卡视频| 蜜桃免费网站一区二区三区| 亚洲激情第一区| 国产午夜精品一区二区三区视频 | 日韩欧美国产高清| 国产精品久久久久婷婷二区次| 欧美日韩第一区日日骚| 9色porny自拍视频一区二区| 激情综合网激情| 亚洲福利电影网| 国产精品不卡一区| 久久蜜桃av一区精品变态类天堂| 欧美日韩一级片在线观看| 97aⅴ精品视频一二三区| 国产一区二区三区在线观看精品 | 丝袜美腿亚洲综合| 日韩码欧中文字| 国产日韩v精品一区二区| 欧美一区二区三区人| 欧美在线观看视频一区二区三区| 成人激情图片网| 国产精品综合二区| 久久精品噜噜噜成人av农村| 亚洲动漫第一页| 亚洲一区二区在线观看视频| 国产精品二三区| 国产午夜精品美女毛片视频| 日韩精品一区国产麻豆| 欧美一区二区三区小说| 欧美日韩精品电影| 欧美在线播放高清精品| 在线视频你懂得一区二区三区| av日韩在线网站| 成人午夜av在线| 丁香啪啪综合成人亚洲小说| 国产乱淫av一区二区三区| 激情五月婷婷综合网| 精品亚洲porn| 国产在线精品免费| 国产一区二区伦理| 国产一区福利在线| 国产一区二区免费在线| 国产揄拍国内精品对白| 国产一区二区调教| 韩国精品久久久| 黄色成人免费在线| 国产精品一级在线| 国产91富婆露脸刺激对白 | 亚洲一区二区三区四区在线观看| 亚洲人成人一区二区在线观看| 成人欧美一区二区三区视频网页| 中文字幕在线不卡| 亚洲日本电影在线| 国产精品自拍三区| 粉嫩av一区二区三区在线播放 | 寂寞少妇一区二区三区| 国内久久精品视频| 国产乱理伦片在线观看夜一区| 国产精品一区二区在线观看网站| 懂色一区二区三区免费观看| 成人av在线影院| 91久久精品网| 91.成人天堂一区| 精品久久久三级丝袜| 国产喷白浆一区二区三区| 国产欧美日韩在线看| 国产精品成人一区二区艾草| 一区二区在线观看免费视频播放| 亚洲午夜一区二区三区| 日韩精品五月天| 麻豆一区二区在线| 国产成人夜色高潮福利影视| 成人国产精品免费观看视频| 日本高清视频一区二区| 欧美精品久久久久久久久老牛影院| 欧美一区二区视频在线观看2020 | 国产午夜精品久久久久久免费视| 欧美国产精品中文字幕| 一区二区视频在线| 天堂在线一区二区| 国产乱子轮精品视频| 91麻豆蜜桃一区二区三区| 欧美日韩小视频| 久久青草欧美一区二区三区| 亚洲欧美日韩中文播放 | 亚洲狠狠爱一区二区三区| 欧美aaaaaa午夜精品| 国产精品一区2区| 一本久久综合亚洲鲁鲁五月天| 制服丝袜av成人在线看| 中文一区在线播放| 五月天视频一区| 日韩亚洲欧美成人一区| 久久精品亚洲乱码伦伦中文| 一区二区免费看|