亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91精品国产日韩91久久久久久| 亚洲色图色小说| 国产一区二区三区四| www一区二区| 成人网男人的天堂| 亚洲欧美偷拍卡通变态| 欧美视频在线一区| 美腿丝袜亚洲综合| 久久久高清一区二区三区| 成人av高清在线| 一区二区三区精品在线| 欧美精品久久久久久久久老牛影院| 日日噜噜夜夜狠狠视频欧美人 | 国产欧美精品一区aⅴ影院| 国产suv精品一区二区三区| 国产精品久久久久婷婷二区次| eeuss影院一区二区三区| 亚洲尤物在线视频观看| 欧美一区二区三区精品| 国产精一区二区三区| 国产精品成人一区二区三区夜夜夜| 色综合久久66| 日韩精品亚洲一区二区三区免费| 2024国产精品| 91亚洲午夜精品久久久久久| 亚洲.国产.中文慕字在线| 精品剧情v国产在线观看在线| 丁香婷婷综合色啪| 亚洲综合一二区| 日韩久久精品一区| 成人深夜福利app| 亚洲成在人线免费| 久久久一区二区三区| 91久久香蕉国产日韩欧美9色| 免费观看成人av| 亚洲欧洲国产专区| 欧美一区二区私人影院日本| 成人精品一区二区三区中文字幕| 亚洲影院在线观看| 久久中文字幕电影| 欧美视频在线一区二区三区| 国产一区激情在线| 亚洲综合成人在线视频| 欧美va亚洲va| 91视频com| 另类成人小视频在线| 亚洲天堂久久久久久久| 日韩丝袜美女视频| 91丨porny丨蝌蚪视频| 开心九九激情九九欧美日韩精美视频电影 | 国产精品久久久99| 欧美一级午夜免费电影| 94-欧美-setu| 九九精品视频在线看| 一区二区三区中文字幕电影| 26uuu色噜噜精品一区二区| 在线免费观看日本一区| 国产成人精品免费在线| 日本不卡在线视频| 亚洲老司机在线| 久久久99久久| 日韩一级成人av| 在线视频中文字幕一区二区| 国产电影一区在线| 麻豆一区二区三区| 亚洲二区在线视频| 国产精品视频一二| 精品久久99ma| 欧美日韩国产美| 99视频精品全部免费在线| 久久99久久久久| 亚洲综合激情网| 亚洲色图都市小说| 国产欧美精品日韩区二区麻豆天美| 欧美高清视频在线高清观看mv色露露十八 | 欧美国产日韩在线观看| 日韩精品最新网址| 在线不卡中文字幕| 欧美亚洲丝袜传媒另类| av在线播放不卡| 国产精品一二二区| 国产综合一区二区| 蜜桃av一区二区在线观看| 一区二区欧美国产| 一色桃子久久精品亚洲| 国产亚洲人成网站| 精品久久久久久久久久久久久久久久久 | 久久综合视频网| 日韩视频123| 91精品国产一区二区三区蜜臀| 91成人网在线| 色菇凉天天综合网| 99久久精品国产麻豆演员表| 国产电影精品久久禁18| 国产乱码精品一区二区三区五月婷| 日韩精品91亚洲二区在线观看| 亚洲一区二区三区在线看| 日韩毛片视频在线看| 国产精品视频yy9299一区| 精品对白一区国产伦| 日韩欧美国产不卡| 日韩欧美国产电影| 欧美成人vr18sexvr| 日韩欧美激情四射| 精品电影一区二区| 精品国产一区二区国模嫣然| 欧美一级xxx| 日韩午夜小视频| 日韩欧美在线一区二区三区| 欧美一区二区视频在线观看2022| 欧美福利视频一区| 欧美一区二区久久久| 欧美一区二区三区在| 日韩视频一区二区三区| 日韩欧美在线影院| 欧美精品一区二区三区一线天视频| 精品久久免费看| 国产色婷婷亚洲99精品小说| 久久精品人人爽人人爽| 中文久久乱码一区二区| 日韩毛片视频在线看| 一区二区三区欧美在线观看| 亚洲风情在线资源站| 青青草国产精品97视觉盛宴| 看国产成人h片视频| 国产麻豆精品在线观看| 懂色一区二区三区免费观看| 成人av在线网| 在线这里只有精品| 欧美剧在线免费观看网站| 欧美一区二区三区白人| 精品国产乱码久久久久久牛牛| 久久免费偷拍视频| 亚洲欧洲精品一区二区三区不卡| 亚洲免费av在线| 三级影片在线观看欧美日韩一区二区 | 91视频你懂的| 欧美日韩大陆在线| 日韩精品一区二区三区蜜臀| 亚洲精品一区二区三区蜜桃下载| 国产日韩欧美电影| 樱桃视频在线观看一区| 亚洲1区2区3区4区| 国产一区二区三区观看| av一本久道久久综合久久鬼色| 色综合亚洲欧洲| 这里只有精品99re| 国产亚洲午夜高清国产拍精品 | 国产经典欧美精品| 99re热这里只有精品视频| 91在线视频官网| 欧美日韩高清一区| 久久精品这里都是精品| 国产精品久线观看视频| 亚洲高清不卡在线观看| 久久99精品久久久久久久久久久久 | 99综合电影在线视频| 在线视频亚洲一区| 日韩一区二区中文字幕| 国产精品午夜免费| 一区二区三区四区在线| 性做久久久久久久久| 国产一区 二区 三区一级| 日本电影欧美片| 91精品国产全国免费观看| 中国av一区二区三区| 日韩精品亚洲一区二区三区免费| 国产成人av电影在线| 在线免费观看不卡av| 日韩久久久精品| 亚洲免费在线电影| 国产一区在线精品| 欧美调教femdomvk| 国产欧美一区二区三区在线看蜜臀 | 成人一二三区视频| 欧美色图片你懂的| 国产亚洲女人久久久久毛片| 亚洲免费观看在线视频| 狠狠色丁香久久婷婷综| 91国在线观看| 国产肉丝袜一区二区| 午夜精品久久久久久久久久| 国产伦理精品不卡| 欧美日韩一区二区不卡| 日本一区二区不卡视频| 日本欧美一区二区| 99久久久久久99| 日韩欧美色电影| 一区二区三区日本| 成人网男人的天堂| 26uuuu精品一区二区| 亚洲高清在线视频| 99久精品国产| 欧美成人福利视频| 婷婷国产v国产偷v亚洲高清| 99免费精品在线| 久久综合成人精品亚洲另类欧美 | 亚洲一区二区欧美日韩 | 97久久人人超碰| 久久久久久亚洲综合影院红桃|