明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP文件上傳神功 第3重:集成類、多語(yǔ)種通用,使用方便

[摘要]這個(gè)問(wèn)題已經(jīng)不是什么新鮮問(wèn)題了,網(wǎng)上也有大把的教程,但大多數(shù)是授人以魚(yú),而不授人以漁,經(jīng)過(guò)辛苦的資料收集,思考,調(diào)試,整理,我基本上已經(jīng)把這個(gè)問(wèn)題從原理上搞清楚了,現(xiàn)在根據(jù)我自己的理解,在范例程序的基礎(chǔ)上,加以解釋,希望能對(duì)部分網(wǎng)友(比我還菜的:-))有所幫助。 請(qǐng)諸位大蝦能對(duì)其中的不正或不良這處...

這個(gè)問(wèn)題已經(jīng)不是什么新鮮問(wèn)題了,網(wǎng)上也有大把的教程,但大多數(shù)是授人以魚(yú),而不授人以漁,經(jīng)過(guò)辛苦的資料收集,思考,調(diào)試,整理,我基本上已經(jīng)把這個(gè)問(wèn)題從原理上搞清楚了,現(xiàn)在根據(jù)我自己的理解,在范例程序的基礎(chǔ)上,加以解釋,希望能對(duì)部分網(wǎng)友(比我還菜的:-))有所幫助。

請(qǐng)諸位大蝦能對(duì)其中的不正或不良這處予以指正。

程序中stream對(duì)象的用法上參考了“化境HTTP上傳程序 Version 2.0”在代碼,在此對(duì)稻香老農(nóng)和梁無(wú)懼表示衷心的感謝和由衷的敬意。

先來(lái)分析一下,為后面的數(shù)據(jù)分析算法打點(diǎn)基礎(chǔ),以下是我摘錄的一小段網(wǎng)頁(yè)中提交的二進(jìn)制數(shù)據(jù):
-----------------------------7d31ec15102d0
Content-Disposition: form-data; name="txtTitle"

滿腦的想法
-----------------------------7d31ec15102d0
Content-Disposition: form-data; name="filImage"; filename="F:\material\木紋背景\pic016.jpg"
Content-Type: image/pjpeg

? JFIF    C

!!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE?"    
?  } !1AQa"q2亼?#B繃R佯$3br?
侼s歊J佦=ǜ珻,%??Xm 銓鼽?幮??驲湕胄滙C?
儗 g?咶? tS?B矠:u隠c
g不t凄L琰h`啨0p
g殲41?9'$筵奆]眬?膁?摍? 渦"??
-----------------------------7d31ec15102d0
Content-Disposition: form-data; name="btnUpload"

Upload
-----------------------------7d31ec15102d0--

藍(lán)色的字符的內(nèi)容我們應(yīng)該熟悉吧,中間的亂碼就是上傳的文件的內(nèi)容,其實(shí)我們要做的就是將這一堆數(shù)據(jù)進(jìn)行分析,挑出對(duì)我們有用的數(shù)據(jù)保存下來(lái)就OK了。分析數(shù)據(jù)就是查找一些標(biāo)志性的內(nèi)容,如回車換行符,“----------”符號(hào),用兩個(gè)指針確定兩個(gè)位置,然后提取數(shù)據(jù),我的算法不知道好不好,本人的數(shù)據(jù)結(jié)構(gòu)是學(xué)得很爛的,十分sorry。

以下是一個(gè)完事的應(yīng)用,其中的類定義可以與入另一個(gè)文件,使用的時(shí)候只要用

<!--include file="LjUpload.cls"-->

命令包含進(jìn)來(lái)就可以了。

LjUpload.asp:

<%@ Language=VBScript %>
<% option explicit %>

<script language=vbscript runat=server>

private srmRequestData'adodb.stream對(duì)象,保存從form中提交來(lái)的所有數(shù)據(jù)

private adTypeBinary'adodb.stream對(duì)象的叁數(shù):返回二進(jìn)制數(shù)據(jù)
private adTypeText'adodb.stream對(duì)象的叁數(shù):返回文本數(shù)據(jù)
private adModeRead'adodb.stream對(duì)象的叁數(shù):對(duì)象可讀
private adModeWrite'adodb.stream對(duì)象的叁數(shù):對(duì)象可寫(xiě)
private adModeReadWrite'adodb.stream對(duì)象的叁數(shù):對(duì)象可讀寫(xiě)

class LjUpload'定義