當前位置:成語大全網 - 書法字典 - 幫助ASP解決問題

幫助ASP解決問題

看起來妳是在無組件上傳,組件代碼如下;

& lt%

服務器。ScriptTimeOut=9999

dim Data_5xsoft

課程上傳_5xsoft

dim對象形式,對象文件,版本

公共函數形式

strForm=lcase(strForm)

如果不是objForm.exists(strForm ),則

表單= " "

其他

Form=objForm(strForm)

如果…就會結束

結束功能

公共函數文件(strFile)

strFile=lcase(strFile)

如果不是objFile.exists(strFile ),則

設置文件=新文件信息

其他

set File=objFile(strFile)

如果…就會結束

結束功能

私有子類_Initialize

dim請求數據,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,文件

dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName

dim iFindStart,iFindEnd

dim iFormStart,iFormEnd,sFormName

set objForm=Server。CreateObject("腳本。字典》)

設置objFile=Server。CreateObject("腳本。字典》)

如有要求。TotalBytes & lt1然後退出接頭

設置tStream = Server。CreateObject("adodb.stream ")

set Data_5xsoft = Server。CreateObject("adodb.stream ")

Data_5xsoft。Type = 1

Data_5xsoft。模式=3

Data_5xsoft。打開

Data_5xsoft。寫請求。BinaryRead(請求。總字節數)

Data_5xsoft。位置=0

RequestData =Data_5xsoft。閱讀

iFormStart = 1

IFormEnd = LenB(RequestData)'這是提交的所有信息的長度,也是信息結束的位置。

vbCrlf = chrB(13)chrB(10)

Sstart = MIDB (RequestData,1,instrb (Iformstart,RequestData,VBCRLF)-1)'每個表單元素在開始之前都有壹個開始標識符。

形式:內容-處置:形式-數據;Name= "表單元素的名稱";Filename= "上傳本地文件的完整路徑" CHR(13)CHR(10)Content-type:text/plain CHR(13)CHR(10)CHR(13)。

如果不是文件,看起來是:內容-處置:表單-數據;Name= "表單元素的名稱" CHR(13)CHR(10)CHR(13)CHR(10)從表單元素CHR(13)CHR(10)傳遞的值。

註意CHR(13)代表回車,CHR(10)代表換行;這將返回固定的起始標識符的內容。

IStart = LenB (sStart)'開始標識符的長度。

iform start = iform start+istart+1 '表單元素開始的位置。

while(iFormStart+10)& lt;' IFormEnd '因為在數據的末尾,不是起始標識符,而是結束標識符"-7d 61773720616-chr(654438。

iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & ampVbCrlf)+3 '查找表單元素描述部分的結束位置。

tStream。Type = 1

tStream。模式=3

tStream。打開

Data _ 5xsoft。將起始位置設置為表單元素描述部分的起始位置。

Data _ 5xsoft。copy to tStream,iinfo end-if mstart '臨時將form元素的描述部分以二進制形式寫入tStream。

tStream。位置= 0

tStream。類型= 2

tStream。Charset ="gb2312 "

SInfo = tStream。“ReadText”將文本形式的信息寫入變量sinfo。

tStream。關閉

獲取表單項目的名稱

Iformstart = instrb (iinfoend,requestdata,sstart)'找到下壹個表單元素的分隔符的起始二進制位置,稍後將使用該位置。現在才知道。

Ifindstart = instr (22,sinfo," name = ",1)+6 '表單-表單元素描述的數據;開始定位name= "的起始位置,也就是字符數。然後定位name= "後,參數" 1 "以文本的形式表示比較。

Ifindend = instr (ifindstart,sinfo,""",1)'定位下壹個"數字,這樣它們之間的部分就是表單的nane屬性值。

S formname = lcase (mid (sinfo,ifindstart,ifindstart))'看!得到

如果是文件的話。

if InStr (45,sInfo," filename= " ",1)>那麽0

設置file = new fileinfo' fileinfo類在後面定義。

獲取文件名

iFindStart = InStr(iFindEnd,sInfo," filename= " ",1)+10

iFindEnd = InStr(iFindStart,sInfo,"""",1)

sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)

文件。FileName=getFileName(sFileName)

文件。FilePath=getFilePath(sFileName)

文件。FileExt=getFileExt(sFileName)

獲取文檔類型

Ifindstart = instr (ifindend,sinfo," content-type:",1)+14 '自己檢查壹下。

Ifindend = instr (ifindstart,sinfo,vbCr)' vbcr代表回車,CHR(13)CHR(10)的起始位置不就是vbCr的起始位置嗎?

文件。FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)

獲取文件數據

文件。FileStart =iInfoEnd '文件的實際數據開始的位置。

文件。' filesize = iFormStart-iinfo end-3 '這裏用的是前面的iFormStart,前面是這個form元素的真實數據,後面是下壹個form元素的部分。為什麽要減去3,這樣就得到了文件的長度。

文件。FormName=sFormName

如果不是objFile。存在(sFormName)那麽

' ObjFile.add sFormName,theFile '將FileInfo類的對象File添加到字典ObjFile,其關鍵字是form元素的Name屬性。

如果…就會結束

其他

如果是表單項。

tStream。Type =1

tStream。模式=3

tStream。打開

Data_5xsoft。Position = iInfoEnd '表單元素的實際數據的起始位置。

Data _ 5xsoft。copy to tStream,iformstart-iinfo end-3 '臨時將實際數據復制到tStream中。

tStream。位置= 0

tStream。類型= 2

TStream。Charset ="gb2312 " '轉換為文本。

sFormvalue = tStream。'閱讀文本'

tStream。關閉

如果objForm。存在(sFormName)那麽

obj form(s formname)= obj form(s formname)& amp;“,”& ampsFormvalue

其他

objForm。添加sFormName,sFormvalue

如果…就會結束

如果…就會結束

iform start = iform start+istart+1 '獲取下壹個表單元素的描述部分的開始位置,從而開始下壹個循環。

RequestData= " "

設置tStream =nothing

末端接頭

私有子類_終止

如有要求。TotalBytes & gt那麽0

objForm。全部刪除

objFile。全部刪除

set objForm=nothing

set objFile=nothing

Data_5xsoft。關閉

set Data _ 5xsoft =無

如果…就會結束

末端接頭

私有函數GetFilePath(FullPath)

如果FullPath & lt& gt”“那麽

GetFilePath = left(FullPath,InStrRev(FullPath," \ "))

其他

GetFilePath = " "

如果…就會結束

結束功能

私有函數GetFileName(完整路徑)

如果FullPath & lt& gt”“那麽

GetFileName = mid(FullPath,InStrRev(FullPath," \")+1)

其他

GetFileName = " "

如果…就會結束

結束功能

私有函數GetFileExt(完整路徑)

如果FullPath & lt& gt”“那麽

GetFileExt = mid(FullPath,InStrRev(FullPath," "))

其他

GetFileExt = " "

如果…就會結束

結束功能

結束類

FileInfo類

dim格式名,文件名,文件路徑,文件大小,文件類型,文件開始,文件擴展名

私有子類_Initialize

文件名= " "

文件路徑= " "

文件大小= 0

文件開始= 0

FormName = " "

文件類型= " "

FileExt= " "

末端接頭

公共函數另存為(完整路徑)

dim dr,ErrorChar,I

SaveAs=true

如果trim(fullpath)= " "或FileStart=0或FileName= " "或right(fullpath,1)="/",則退出函數

set dr=CreateObject("Adodb。流”)

博士模式=3

dr.Type=1

開放博士

Data_5xsoft.position=FileStart

Data_5xsoft.copyto災難恢復,文件大小

博士保存文件完整路徑,2

克洛斯博士

設置dr =無

SaveAs=false

結束功能

結束類

% & gt

您將其保存為upload.inc,然後鍵入