主頁(yè) > 知識(shí)庫(kù) > 通過表單的做為二進(jìn)制文件上傳request.totalbytes提取出上傳的二級(jí)制數(shù)據(jù)

通過表單的做為二進(jìn)制文件上傳request.totalbytes提取出上傳的二級(jí)制數(shù)據(jù)

熱門標(biāo)簽:團(tuán)購(gòu)網(wǎng)站 Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù) Linux服務(wù)器 阿里云 電子圍欄 服務(wù)器配置 科大訊飛語(yǔ)音識(shí)別系統(tǒng)
復(fù)制代碼 代碼如下:

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é)數(shù)
-----------------------
formdata=request.binaryread(formsize)
取得二進(jìn)制流的表單form數(shù)據(jù)
-----------------------
bncrlf=chrB(13) chrB(10)
設(shè)定crlf 回車換行代碼變量
------------------------------
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
取得第一個(gè)crlf左邊的字節(jié)數(shù)據(jù)
instrb(formdata,bncrlf)-1機(jī)檢查出crlf二進(jìn)制字節(jié)的位值減一,即為該標(biāo)志位信息之前的二進(jìn)制數(shù)據(jù),需要說明的是instrb返回的是clng,所以此處加了一個(gè)clng是多余的
------------------------------
datastart=instrb(formdata,bncrlf bncrlf)+4
取得圖象數(shù)據(jù),去除form表單添加的頭信息的啟始位置,也就是你的type=file在form提交后的真正文件數(shù)據(jù)的字節(jié)起始位置
二個(gè)連續(xù)crlf的位置+4(即而個(gè)crlfg的長(zhǎng)度)
-------------------------------
dataend=instrb(datastart+1,formdata,divider)-datastart
從上的取得的數(shù)據(jù)位置+1做為檢查數(shù)據(jù)結(jié)尾的參考計(jì)算值,在datastart+1開始的位置檢測(cè)返回第一個(gè)二進(jìn)制form分隔頭信息的位置,再減去datastar的相對(duì)位置
----------------------------
mydata=midb(formdata,datastart,dataend)
midb()取以上多番周折取得的上傳文件數(shù)據(jù)的star end位制的數(shù)據(jù)
ok --------------> 現(xiàn)在干干凈凈的提取出上傳的二級(jí)制數(shù)據(jù)

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

標(biāo)簽:大理 萍鄉(xiāng) 廣元 棗莊 衡水 衢州 蚌埠 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《通過表單的做為二進(jìn)制文件上傳request.totalbytes提取出上傳的二級(jí)制數(shù)據(jù)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266