国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

ASP無組件上載,帶進度條,多文件上載
2007-02-12   網絡

Example.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="SundyUpload.asp"-->
<%
'此例子文檔編碼都是UTF-8,如果是其他編碼的系統,請將編碼轉換為相應的編碼,不然表單獲取數據可能會亂碼
Dim objUpload,opt
Dim xmlPath
Dim fileFormName,objFile,counter
opt = request.QueryString("opt")
If opt = "Upload" Then
xmlPath = Server.MapPath(request.QueryString("xmlPath"))'將虛擬路徑轉換為實際路徑
Set objUpload=new SundyUpload '建立上傳對象
objUpload.UploadInit xmlPath,"utf-8"
counter = 1
Response.Write("普通表單:" & objUpload.Form("normalForm") & "<BR><BR>")'獲取表單數據
For Each fileFormName In objUpload.objFile
Set objFile=objUpload.objFile(fileFormName)
fileSize = objFile.FileSize
strTemp= objFile.FilePath
Response.Write strTemp
fileName = mid(strTemp,InStrRev(strTemp, "\")+1)
If fileSize > 0 Then
Response.Write("File Size:" & fileSize & "<BR>")
Response.Write("File Name:" & objFile.FilePath & "<BR>")
' Response.Write("File Description:" & objUpload.Form("fileDesc" & counter) & "<BR><BR>")
objFile.SaveAs Server.MapPath(".") & "\upload\" & fileName
Response.Write "Save at: "&Server.MapPath(".") & "\upload\" & fileName & "<br><br>"
End If
counter = counter + 1
Next

End If
'為上載進度條數據文件(XML文件指定虛擬路徑)
'最好是隨機的,因為可能多個人同時上載,需要不同的進度數據
'這個路徑需要在提交的時候傳入上載組件中,以便在上載過程中更改進度數據
'客戶端使用javascript來讀取此XML文件,顯示進度
xmlPath = "upload/" & Timer & ".xml"
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sundy Upload Progress Bar Example</title>
<script language="javascript">
function chkFrm(){
var objFrm = document.frmUpload;
if (objFrm.file1.value=="" && objFrm.file2.value==""){
alert("請選擇一個文件");
objFrm.file1.focus();
return false;
}
objFrm.action = "Example.asp?opt=Upload&xmlPath=<%=xmlPath%>";
startProgress('<%=xmlPath%>');//啟動進度條
return true;
}
</script>
</head>

<body>
<form name="frmUpload" method="post" action="Example.asp" enctype="multipart/form-data" onSubmit="return chkFrm()">
普通表單:<BR><input type="text" name="normalForm" size="40"><BR><BR>
文件1:<BR>
<input type="file" name="file1" size="40"></br>
<input type="text" name="fileDesc1" size="30"><BR><BR>
文件2:<BR>
<input type="file" name="file2" size="40"></br>
<input type="text" name="fileDesc2" size="30"><BR>
文件3:<BR>
<input type="file" name="file3" size="40"></br>
文件4:<BR>
<input type="file" name="file4" size="40"></br>
文件5:<BR>
<input type="file" name="file5" size="40"></br>
<input type="submit" name="btnSubmit" value="submit"/>
</form>
</body>
</html>

SundyUpload.asp

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%
Dim SundyUpload_SourceData
Class SundyUpload
Dim objForm,objFile,Version,objProgress
Dim xmlPath,CharsetEncoding
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

Public Sub UploadInit(progressXmlPath,charset)
Dim RequestData,sStart,Crlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
Dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
Dim iFindStart,iFindEnd
Dim iFormStart,iFormEnd,sFormName

Version="Upload Width Progress Bar 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 SundyUpload_SourceData = Server.CreateObject("adodb.stream")
SundyUpload_SourceData.Type = 1
SundyUpload_SourceData.Mode =3
SundyUpload_SourceData.Open

Dim TotalBytes
Dim ChunkReadSize
Dim DataPart, PartSize
Dim objProgress

TotalBytes = Request.TotalBytes ' 總大小
ChunkReadSize = 64 * 1024 ' 分塊大小64K
BytesRead = 0
xmlPath = progressXmlPath
CharsetEncoding = charset
If CharsetEncoding = "" Then
CharsetEncoding = "utf-8"
End If
Set objProgress = New Progress
objProgress.ProgressInit(xmlPath)
objProgress.UpdateProgress Totalbytes,0
'循環分塊讀取
Do While BytesRead < TotalBytes
'分塊讀取
PartSize = ChunkReadSize
If PartSize + BytesRead > TotalBytes Then PartSize = TotalBytes - BytesRead
DataPart = Request.BinaryRead(PartSize)
BytesRead = BytesRead + PartSize

SundyUpload_SourceData.Write DataPart

objProgress.UpdateProgress Totalbytes,BytesRead
Loop
'SundyUpload_SourceData.Write Request.BinaryRead(Request.TotalBytes)
SundyUpload_SourceData.Position=0
RequestData =SundyUpload_SourceData.Read

iFormStart = 1
iFormEnd = LenB(RequestData)
Crlf = chrB(13) & chrB(10)
sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,Crlf)-1)
iStart = LenB (sStart)
iFormStart=iFormStart+iStart+1
While (iFormStart + 10) < iFormEnd
iInfoEnd = InStrB(iFormStart,RequestData,Crlf & Crlf)+3
tStream.Type = 1
tStream.Mode =3
tStream.Open
SundyUpload_SourceData.Position = iFormStart
SundyUpload_SourceData.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.Charset =CharsetEncoding
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
SundyUpload_SourceData.Position = iInfoEnd
SundyUpload_SourceData.CopyTo tStream,iFormStart-iInfoEnd-3
tStream.Position = 0
tStream.Type = 2
tStream.Charset = CharsetEncoding
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_Initialize

End Sub

Private Sub Class_Terminate
If Request.TotalBytes>0 Then
objForm.RemoveAll
objFile.RemoveAll
Set objForm=Nothing
Set objFile=Nothing
SundyUpload_SourceData.Close
Set SundyUpload_SourceData = Nothing
End If
Set objProgress = Nothing
Set objFso = Server.CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(xmlPath) Then
objFso.DeleteFile(xmlPath)
End If
Set objFso = 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
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
'Response.Write fullpath & ".....................<br>"
'FileName="ss.txt"
If trim(fullpath)="" or FileStart=0 or fileName="" or right(fullpath,1)="/" Then Exit Function
'Response.Write "2........................<br>"
Set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
SundyUpload_SourceData.position=FileStart
SundyUpload_SourceData.copyto dr,FileSize
dr.SaveToFile FullPath,2
dr.Close
Set dr=Nothing
SaveAs=False
End Function
End Class

Class Progress
Dim objDom,xmlPath
Dim startTime
Private Sub Class_Initialize

End Sub

Public Sub ProgressInit(xmlPathTmp)
Dim objRoot,objChild
Dim objPI

xmlPath = xmlPathTmp
Set objDom = Server.CreateObject("Microsoft.XMLDOM")
Set objRoot = objDom.createElement("progress")
objDom.appendChild objRoot

Set objChild = objDom.createElement("totalbytes")
objChild.Text = "0"
objRoot.appendChild objChild
Set objChild = objDom.createElement("uploadbytes")
objChild.Text = "0"
objRoot.appendChild objChild
Set objChild = objDom.createElement("uploadpercent")
objChild.Text = "0%"
objRoot.appendChild objChild
Set objChild = objDom.createElement("uploadspeed")
objChild.Text = "0"
objRoot.appendChild objChild
Set objChild = objDom.createElement("totaltime")
objChild.Text = "00:00:00"
objRoot.appendChild objChild
Set objChild = objDom.createElement("lefttime")
objChild.Text = "00:00:00"
objRoot.appendChild objChild

Set objPI = objDom.createProcessingInstruction("xml","version='1.0' encoding='utf-8'")
objDom.insertBefore objPI, objDom.childNodes(0)
objDom.Save xmlPath
Set objPI = Nothing
Set objChild = Nothing
Set objRoot = Nothing
Set objDom = Nothing
End Sub

Sub UpdateProgress(tBytes,rBytes)
Dim eTime,currentTime,speed,totalTime,leftTime,percent
If rBytes = 0 Then
startTime = Timer
Set objDom = Server.CreateObject("Microsoft.XMLDOM")
objDom.load(xmlPath)
objDom.selectsinglenode("//totalbytes").text=tBytes
objDom.save(xmlPath)
Else
speed = 0.0001
currentTime = Timer
eTime = currentTime - startTime
If eTime>0 Then speed = rBytes / eTime
totalTime = tBytes / speed
leftTime = (tBytes - rBytes) / speed
percent = Round(rBytes *100 / tBytes)
'objDom.selectsinglenode("//uploadbytes").text = rBytes
'objDom.selectsinglenode("//uploadspeed").text = speed
'objDom.selectsinglenode("//totaltime").text = totalTime
'objDom.selectsinglenode("//lefttime").text = leftTime
objDom.selectsinglenode("//uploadbytes").text = FormatFileSize(rBytes) & " / " & FormatFileSize(tBytes)
objDom.selectsinglenode("//uploadpercent").text = percent
objDom.selectsinglenode("//uploadspeed").text = FormatFileSize(speed) & "/sec"
objDom.selectsinglenode("//totaltime").text = SecToTime(totalTime)
objDom.selectsinglenode("//lefttime").text = SecToTime(leftTime)
objDom.save(xmlPath)
End If
End Sub

private Function SecToTime(sec)
Dim h:h = "0"
Dim m:m = "0"
Dim s:s = "0"
h = round(sec / 3600)
m = round( (sec mod 3600) / 60)
s = round(sec mod 60)
If LEN(h)=1 Then h = "0" & h
If LEN(m)=1 Then m = "0" & m
If LEN(s)=1 Then s = "0" & s
SecToTime = (h & ":" & m & ":" & s)
End Function

private Function FormatFileSize(fsize)
Dim radio,k,m,g,unitTMP
&a

熱詞搜索:

上一篇:ASP小技巧:禁用html頁面的緩存
下一篇:ASP實現無組件生成驗證碼-GIF格式

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
洋洋av久久久久久久一区| 久久青草欧美一区二区三区| 国产69精品久久久久777| 九九久久精品视频| 免费成人在线视频观看| 日本不卡123| 狠狠色丁香婷综合久久| 国产成人综合精品三级| 国产a区久久久| 91视频你懂的| 欧美日韩久久久一区| 欧美一区二区免费视频| 欧美精品一区二区三区蜜桃视频 | 九一久久久久久| 国内精品久久久久影院色| 国产麻豆精品theporn| 丁香亚洲综合激情啪啪综合| 一本久道中文字幕精品亚洲嫩 | 一区二区欧美国产| 日韩av在线发布| 久久精品国产一区二区三| 国产精品一线二线三线精华| 97久久久精品综合88久久| 欧美性猛片aaaaaaa做受| 91精品国产麻豆国产自产在线| 日韩精品专区在线| 国产精品毛片无遮挡高清| 亚洲一区二区中文在线| 精品午夜久久福利影院| 91天堂素人约啪| 欧美一三区三区四区免费在线看| 久久精品一区二区| 亚洲综合久久av| 国产精品1024久久| 欧美午夜在线观看| 亚洲国产成人私人影院tom | 7777精品伊人久久久大香线蕉的 | 综合久久久久久| 日韩精品亚洲专区| 不卡电影免费在线播放一区| 欧美精品一级二级三级| 亚洲国产精品成人久久综合一区| 午夜视频一区二区三区| 成人高清免费观看| 国产成人鲁色资源国产91色综| 在线亚洲+欧美+日本专区| 欧美www视频| 婷婷一区二区三区| 91小视频免费看| 国产欧美日本一区视频| 日本成人中文字幕| 欧洲激情一区二区| 日本一区二区三区四区| 久久99久久久久久久久久久| 一本一道久久a久久精品综合蜜臀| 久久综合九色综合97婷婷女人| 亚洲mv在线观看| 色婷婷狠狠综合| 综合婷婷亚洲小说| av午夜精品一区二区三区| 久久综合色播五月| 麻豆91精品视频| 3d动漫精品啪啪1区2区免费| 亚洲亚洲精品在线观看| 91成人在线精品| 亚洲理论在线观看| 一道本成人在线| 亚洲欧美日韩综合aⅴ视频| thepron国产精品| 中文字幕在线一区| 成人手机电影网| 国产日韩综合av| 成人午夜又粗又硬又大| 久久精品无码一区二区三区| 国产一区日韩二区欧美三区| 欧美大片在线观看| 国产在线一区二区| 国产亚洲一二三区| 日本va欧美va瓶| 日韩免费看的电影| 国产在线视频精品一区| 久久久久成人黄色影片| 国产精品香蕉一区二区三区| 久久精品一区蜜桃臀影院| 成人免费观看av| 中文字幕亚洲欧美在线不卡| 色综合久久天天综合网| 一区av在线播放| 欧美精品久久久久久久多人混战 | 欧美韩国日本不卡| 成人福利在线看| 亚洲一区二区三区自拍| 6080国产精品一区二区| 国产米奇在线777精品观看| 国产精品免费免费| 在线一区二区视频| 麻豆成人免费电影| 欧美激情在线一区二区| 91麻豆文化传媒在线观看| 亚洲成人免费视| 久久精品一二三| 欧美亚洲愉拍一区二区| 精品一区二区三区免费视频| 国产精品美女www爽爽爽| 欧美日韩另类一区| 国产风韵犹存在线视精品| 亚洲精品乱码久久久久| 欧美哺乳videos| 91同城在线观看| 久久国产生活片100| 国产精品乱人伦中文| 在线综合+亚洲+欧美中文字幕| 国产久卡久卡久卡久卡视频精品| 一区在线播放视频| 91精品国产乱码久久蜜臀| 成人app软件下载大全免费| 免费成人深夜小野草| 亚洲精品伦理在线| 久久精品免视看| 日韩欧美中文字幕公布| 91麻豆国产在线观看| 久久99国产精品久久| 亚洲综合色视频| 国产精品三级在线观看| 欧美一级生活片| 欧美亚洲综合久久| www.欧美亚洲| 成人一区二区三区视频在线观看 | 久久精品在线免费观看| 69堂国产成人免费视频| 一本大道综合伊人精品热热| 国产伦精品一区二区三区视频青涩| 亚洲va在线va天堂| 亚洲毛片av在线| 亚洲视频免费在线观看| 日本一区二区电影| 国产亚洲欧美日韩日本| 精品国产伦理网| 日韩欧美中文一区二区| 日韩午夜激情视频| 欧美久久久久久蜜桃| 欧美日韩国产一区二区三区地区| 99re这里都是精品| 波多野结衣在线aⅴ中文字幕不卡| 狠狠色狠狠色综合系列| 国内外成人在线| 国产麻豆精品theporn| 国产乱人伦偷精品视频免下载| 麻豆久久久久久久| 久久9热精品视频| 老司机精品视频在线| 美女网站色91| 久久精品999| 黄色成人免费在线| 久久国产精品第一页| 免费在线一区观看| 久久99国产乱子伦精品免费| 精品在线一区二区| 国产麻豆成人精品| 成人av免费观看| 在线观看欧美黄色| 欧美男男青年gay1069videost| 欧美电影影音先锋| 欧美刺激午夜性久久久久久久| 精品噜噜噜噜久久久久久久久试看| 精品国产成人系列| 国产精品你懂的在线欣赏| 一区二区三区在线高清| 午夜av一区二区| 韩国成人福利片在线播放| 成人黄色在线网站| 欧美三级欧美一级| 日韩一区二区不卡| 中文字幕乱码亚洲精品一区| 亚洲免费在线视频| 日韩精品免费专区| 国产精品一级在线| 欧美亚洲动漫精品| 精品va天堂亚洲国产| 亚洲视频网在线直播| 人妖欧美一区二区| 不卡av在线免费观看| 欧美日韩亚洲不卡| 国产视频一区二区三区在线观看| 一区二区中文字幕在线| 日韩高清不卡一区二区三区| 国产在线观看一区二区| 欧美亚洲一区二区在线观看| wwww国产精品欧美| 成人综合婷婷国产精品久久蜜臀 | 日韩免费高清视频| 中文字幕 久热精品 视频在线| 亚洲丶国产丶欧美一区二区三区| 九九精品一区二区| 在线观看欧美精品| 亚洲国产高清在线| 九九**精品视频免费播放| 欧美婷婷六月丁香综合色| 久久久久久久久岛国免费| 亚洲成av人片在www色猫咪|