亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

為SWFUpload增加ASP版本的上傳處理程序

2024-05-04 11:08:18
字體:
來源:轉載
供稿:網友
SWFUpload上傳組件,最初由Vinterwebb.se開發,組件主體由Flash與JavaScript整合而成,主要致力解決多文件、大文件等的上傳問題,組件提供了豐富的事件與接口方便web開發者調用,開發者可以通過js與css等很方便的控制樣式和實現想要的上傳效果。
 
 
 
但也許是隨著asp的逐漸淡出web開發,官方僅提供了.net、php等版本的上傳處理程序,對于asp開發者來說則需要自行處理服務器端的數據接收。 

剛接觸此組件時就被它功能強大與靈活方便吸引,由于當時項目采用asp開發,百度一番后發現并無好用的asp上傳處理程序(現在有很多啦^^),看來只能自己研究開發啦,最初采用處理普通上傳的方法來截取文件的數據,幾經測試發現并不能有效接收組件傳遞過來的文件數據,無奈只能著手分析下它發送的數據形式,通過分析發現它發送的數據格式還是和普通上傳存在一些區別的,無論是圖片還是文件都是以octet-stream形式發送到服務器的,了解了數據格式,剩下的就是截取啦,下面把我的處理方法分享給需要的朋友,處理速度還算理想。 
復制代碼代碼如下:

<% 
Class SWFUpload 

Private formData, folderPath, streamGet 
Private fileSize, chunkSize, bofCont, eofCont 

REM CLASS-INITIALIZE 

Private Sub Class_Initialize 
Call InitVariant 
Server.ScriptTimeOut = 1800 
Set streamGet = Server.CreateObject("ADODB.Stream") 

sAuthor = "51JS.COM-ZMM" 
sVersion = "Upload Class 1.0" 
End Sub 

REM CLASS-INITIALIZE 

Public Property Let SaveFolder(byVal sFolder) 
If Right(sFolder, 1) = "/" Then 
folderPath = sFolder 
Else 
folderPath = sFolder & "/" 
End If 
End Property 

Public Property Get SaveFolder 
SaveFolder = folderPath 
End Property 

Private Function InitVariant 
chunkSize = 1024 * 128 

folderPath = "/" : fileSize = 1024 * 10 
bofCont = StrToByte("octet-stream" & vbCrlf & vbCrlf) 
eofCont = StrToByte(vbCrlf & String(12, "-")) 
End Function 

Public Function GetUploadData 
Dim curRead : curRead = 0 
Dim dataLen : dataLen = Request.TotalBytes 

streamGet.Type = 1 : streamGet.Open 
Do While curRead < dataLen 
Dim partLen : partLen = chunkSize 
If partLen + curRead > dataLen Then partLen = dataLen - curRead 
streamGet.Write Request.BinaryRead(partLen) 
curRead = curRead + partLen 
Loop 
streamGet.Position = 0 
formData = streamGet.Read(dataLen) 

Call GetUploadFile 
End Function 

Public Function GetUploadFile 
Dim begMark : begMark = StrToByte("filename=") 
Dim begPath : begPath = InStrB(1, formData, begMark & ChrB(34)) + 10 
Dim endPath : endPath = InStrB(begPath, formData, ChrB(34)) 
Dim cntPath : cntPath = MidB(formData, begPath, endPath - begPath) 
Dim cntName : cntName = folderPath & GetClientName(cntPath) 

Dim begFile : begFile = InStrB(1, formData, bofCont) + 15 
Dim endFile : endFile = InStrB(begFile, formData, eofCont) 

Call SaveUploadFile(cntName, begFile, endFile - begFile) 
End Function 

Public Function SaveUploadFile(byVal fName, byVal bCont, byVal sLen) 
Dim filePath : filePath = Server.MapPath(fName) 
If CreateFolder("|", GetParentFolder(filePath)) Then 
streamGet.Position = bCont 
Set streamPut = Server.CreateObject("ADODB.Stream") 
streamPut.Type = 1 : streamPut.Mode = 3 : streamPut.Open 
streamPut.Write streamGet.Read(sLen) 
streamPut.SaveToFile filePath, 2 
streamPut.Close : Set streamPut = Nothing 
End If 
End Function 

Private Function IsNothing(byVal sVar) 
IsNothing = IsNull(sVar) Or (sVar = Empty) 
End Function 

Private Function StrToByte(byVal sText) 
For i = 1 To Len(sText) 
StrToByte = StrToByte & ChrB(Asc(Mid(sText, i, 1))) 
Next 
End Function 

Private Function ByteToStr(byVal sByte) 
Dim streamTmp 
Set streamTmp = Server.CreateObject("ADODB.Stream") 
streamTmp.Type = 2 
streamTmp.Mode = 3 
streamTmp.Open 
streamTmp.WriteText sByte 
streamTmp.Position = 0 
streamTmp.CharSet = "utf-8" 
streamTmp.Position = 2 
ByteToStr = streamTmp.ReadText 
streamTmp.Close 
Set streamTmp = Nothing 
End Function 

Private Function GetClientName(byVal bInfo) 
Dim sInfo, regEx 
sInfo = ByteToStr(bInfo) 
If IsNothing(sInfo) Then 
GetClientName = "" 
Else 
Set regEx = New RegExp 
regEx.Pattern = "^.*//([^//]+)$" 
regEx.Global = False 
regEx.IgnoreCase = True 
GetClientName = regEx.Replace(sInfo, "$1") 
Set regEx = Nothing 
End If 
End Function 

Private Function GetParentFolder(byVal sPath) 
Dim regEx 
Set regEx = New RegExp 
regEx.Pattern = "^(.*)//[^//]*$" 
regEx.Global = True 
regEx.IgnoreCase = True 
GetParentFolder = regEx.Replace(sPath, "$1") 
Set regEx = Nothing 
End Function 

Private Function CreateFolder(byVal sLine, byVal sPath) 
Dim oFso 
Set oFso = Server.CreateObject("Scripting.FileSystemObject") 
If Not oFso.FolderExists(sPath) Then 
Dim regEx 
Set regEx = New RegExp 
regEx.Pattern = "^(.*)//([^//]*)$" 
regEx.Global = False 
regEx.IgnoreCase = True 
sLine = sLine & regEx.Replace(sPath, "$2") & "|" 
sPath = regEx.Replace(sPath, "$1") 
If CreateFolder(sLine, sPath) Then CreateFolder = True 
Set regEx = Nothing 
Else 
If sLine = "|" Then 
CreateFolder = True 
Else 
Dim sTemp : sTemp = Mid(sLine, 2, Len(sLine) - 2) 
If InStrRev(sTemp, "|") = 0 Then 
sLine = "|" 
sPath = sPath & "/" & sTemp 
Else 
Dim Folder : Folder = Mid(sTemp, InStrRev(sTemp, "|") + 1) 
sLine = "|" & Mid(sTemp, 1, InStrRev(sTemp, "|") - 1) & "|" 
sPath = sPath & "/" & Folder 
End If 
oFso.CreateFolder sPath 
If CreateFolder(sLine, sPath) Then CreateFolder = True 
End if 
End If 
Set oFso = Nothing 
End Function 

REM CLASS-TERMINATE 

Private Sub Class_Terminate 
streamGet.Close 
Set streamGet = Nothing 
End Sub 

End Class 

REM 調用方法 
Dim oUpload 
Set oUpload = New SWFUpload 
oUpload.SaveFolder = "存放路徑" 
oUpload.GetUploadData 
Set oUpload = Nothing 
%> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩中文字幕| 欧美成人sm免费视频| 欧洲成人免费视频| 成人有码视频在线播放| 国产精品永久在线| 欧美电影免费在线观看| 久久免费视频观看| 国产91在线播放精品91| 欧美乱大交xxxxx| 欧美性受xxx| 亚洲欧美在线磁力| 97碰碰碰免费色视频| 久久天天躁夜夜躁狠狠躁2022| 国产精品欧美激情| 97在线视频一区| 91福利视频网| 96精品久久久久中文字幕| 日韩毛片在线看| 久久久精品999| 亚洲影院高清在线| 久久免费精品日本久久中文字幕| 国产精品视频久久久| 欧美日韩一区二区免费在线观看| 色悠久久久久综合先锋影音下载| 久久国产精品偷| 欧美日韩在线视频首页| 2025国产精品视频| 欧美成人在线影院| 国产91精品最新在线播放| 91久久精品国产91久久性色| 亚洲成av人影院在线观看| 国产精品夜色7777狼人| 欧美激情欧美激情在线五月| 亚洲免费人成在线视频观看| 国产亚洲精品久久| 国产精品一区二区三区久久| 最好看的2019年中文视频| 亚洲国产成人精品久久| 国产伦精品一区二区三区精品视频| 国产激情久久久| 国产欧美精品xxxx另类| 岛国av一区二区在线在线观看| 久久影院资源站| 国产成人精品久久久| 欧美日韩xxx| 色中色综合影院手机版在线观看| 高跟丝袜欧美一区| 91亚洲va在线va天堂va国| 国产精品黄页免费高清在线观看| 久久久久久久久久国产精品| 国产精品久久久久久久久久尿| 国产精品网站大全| 久久香蕉国产线看观看av| 97在线观看视频国产| 日本精品一区二区三区在线播放视频| 亚洲国模精品私拍| 亚洲视频视频在线| 91精品视频在线免费观看| 欧美做爰性生交视频| 久久成人人人人精品欧| 久久久久久久久久亚洲| 欧美日韩一区二区免费视频| 91久久精品一区| 中文字幕亚洲综合| 国产啪精品视频| x99av成人免费| 久久人人爽国产| 亚洲国产美女久久久久| 亚洲欧洲美洲在线综合| 久热在线中文字幕色999舞| 国产在线高清精品| 在线成人一区二区| 日韩成人xxxx| 日韩欧美aⅴ综合网站发布| 一区二区欧美久久| 欧美性xxxxxxx| 国产精品你懂得| 亚洲激情在线视频| 78色国产精品| 亚洲第一精品福利| 精品无人区乱码1区2区3区在线| 亚洲伊人久久大香线蕉av| 国内伊人久久久久久网站视频| 日韩av电影免费观看高清| 午夜精品福利电影| 北条麻妃在线一区二区| 91精品国产自产在线观看永久| 欧美成人性色生活仑片| 国产成人中文字幕| 久久香蕉国产线看观看av| 国a精品视频大全| 国产精品视频专区| 亚洲精品福利在线观看| 人妖精品videosex性欧美| 日韩在线视频一区| 91精品综合视频| 91久久精品在线| 日韩免费在线电影| 精品电影在线观看| 在线丨暗呦小u女国产精品| 欧美成人精品激情在线观看| 成人网址在线观看| 亚洲欧美制服另类日韩| 亚洲一区免费网站| 久久久亚洲网站| 国产一区二区日韩| 久久久这里只有精品视频| 亚洲视频电影图片偷拍一区| 中文字幕综合一区| 庆余年2免费日韩剧观看大牛| 日韩在线视频一区| 成人有码在线播放| 日韩欧美在线观看| 欧美成人午夜免费视在线看片| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品爽爽ⅴa在线观看| 亚洲日本欧美中文幕| 欧美一区二区三区免费视| 国产精品久久久久一区二区| 久久精品视频一| 日韩成人激情在线| 成人午夜一级二级三级| 亚洲网站视频福利| 91网站在线看| 亚洲美女黄色片| 亚洲高清福利视频| 欧美激情在线有限公司| 久久6免费高清热精品| 欧美激情精品久久久久久变态| 国产v综合v亚洲欧美久久| 国产亚洲欧美日韩一区二区| 国产亚洲欧美日韩美女| 国产精品丝袜一区二区三区| 中文国产成人精品久久一| 国产日韩精品入口| 在线精品91av| 精品视频在线播放色网色视频| 国产精品久久久久久久午夜| 亚洲国产日韩欧美综合久久| 日韩av影片在线观看| 92福利视频午夜1000合集在线观看| 国内免费久久久久久久久久久| 亚洲国产精品人人爽夜夜爽| 亚洲精品videossex少妇| 91在线视频九色| 精品国偷自产在线| 国产欧美日韩高清| 日韩在线欧美在线国产在线| 国产精品黄视频| 亚洲影视九九影院在线观看| 性日韩欧美在线视频| 最新日韩中文字幕| 国产视频精品va久久久久久| 欧美一级高清免费播放| 国产成人a亚洲精品| 亚洲精品丝袜日韩| 日韩精品极品视频免费观看| 青青精品视频播放| 亚洲国产古装精品网站| 国产精品xxxxx| 欧美日韩中文字幕日韩欧美| 国产精品美女呻吟| 国产精品v片在线观看不卡| 欧美午夜精品久久久久久浪潮|