五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現在的位置: 365建站網 > 365文章 > 通過表單的做為二進制文件上傳request.totalbytes提取出上傳的二級制數據

通過表單的做為二進制文件上傳request.totalbytes提取出上傳的二級制數據

文章來源:365jz.com     點擊數:641    更新時間:2009-09-17 10:25   參與評論

  

 

<input name="file" type="file">
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)

----------------------
formsize=request.totalbytes
取得上傳的最大字節(jié)數
-----------------------
formdata=request.binaryread(formsize)
取得二進制流的表單form數據
-----------------------
bncrlf=chrB(13) & chrB(10)
設定crlf 回車換行代碼變量
------------------------------
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
取得第一個crlf左邊的字節(jié)數據
instrb(formdata,bncrlf)-1
機檢查出crlf二進制字節(jié)的位值減一,即為該標志位信息之前的二進制數據,需要說明的是instrb返回的是clng,所以此處加了一個clng是多余的
------------------------------
datastart=instrb(formdata,bncrlf & bncrlf)+4
取得圖象數據,去除form表單添加的頭信息的啟始位置,也就是你的type=fileform提交后的真正文件數據的字節(jié)起始位置
二個連續(xù)crlf的位置+4(即而個crlfg的長度)
-------------------------------
dataend=instrb(datastart+1,formdata,divider)-datastart
從上的取得的數據位置+1做為檢查數據結尾的參考計算值,在datastart+1開始的位置檢測返回第一個二進制form分隔頭信息的位置,再減去datastar的相對位置

----------------------------
mydata=midb(formdata,datastart,dataend)
midb()
取以上多番周折取得的上傳文件數據的star end位制的數據
ok -------------->
現在干干凈凈的提取出上傳的二級制數據

注:
1.所有 *B系列的VB函數均是按字節(jié)byte來處理,處理二級制必須用他們
2.type=file 和 相應的form類型的表單數據提交后均對每個文件域附加有相應的頭信息
所以必須按上面的算法來明確找到真正的文件數據
3.同時頭信息里還包含上傳初始文件名的數據如 c:\aaa\aaa.jpg,可以同樣處理formdata的數據而提取該段文件域數據的初試文件名
4.這些算法是來源于http“form”規(guī)范提供的格式數據,所以任何一家的處理算法都是大同小異的!

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網友會為你解答??! 點擊進入論壇

發(fā)表評論 (641人查看,0條評論)
請自覺遵守互聯網相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網二維碼

Powered by 365建站網 RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號