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

最短的無組件上傳代碼(僅9行)

[摘要]我研究了一下無組件上傳,并作出了一個最簡單可行的方法 ----用9行代碼真正實(shí)現(xiàn)無組件上傳,怎么說來花了才半天就寫了9行代碼算是有點(diǎn)效率和成果。 于是就寫了這篇文章。 formSize=Request.TotalBytes() formData=Request.BinaryRead(formSiz...

我研究了一下無組件上傳,并作出了一個最簡單可行的方法
----用9行代碼真正實(shí)現(xiàn)無組件上傳,怎么說來花了才半天就寫了9行代碼算是有點(diǎn)效率和成果。
于是就寫了這篇文章。



formSize=Request.TotalBytes()
formData=Request.BinaryRead(formSize)
DataHeader=LeftB(formData,InStrB(formData,Chrb(13)&Chrb(10)))
strFileData=MIDB(formData,LenB(DataHeader),LenB(formData)-LenB(DataHeader)*2-3)
HeaderPos2=InStrB(strFileData,ChrB(AscB("-"))&ChrB(AscB("T"))&ChrB(AscB("y"))&ChrB(AscB("p"))&C

hrB(AscB("e")))
HeaderPos3=InStrB(HeaderPos2,strFileData,Chrb(13))
DataHeader2=LeftB(strFileData,HeaderPos3+4)
strFileData=MIDB(strFileData,LenB(DataHeader2),LenB(strFileData))
Response.binaryWrite(strFileData)







DataHeader--文件頭
strFileData--去處文件頭后的數(shù)據(jù),最后的輸出值
HeaderPos2--Content-Type:的位置
HeaderPos3--例如:Content-Type:image/gif的位置
DataHeader2--整個前面的文件頭

思想:
1。先直接去掉文件頭和尾(例如-----------------------------7d230d1f940277)
2。跳過前面所有信息直接查找Content-Type:image/gif
3。提取有用的信息和字段
4。數(shù)據(jù)都提出來了至于怎么保存就簡單了。至于用FSO或Adodb.Stream就隨你了。

問題:
有人可能會講一個表單不可能只有一個file
這樣的話你的數(shù)據(jù)就不能用這么簡單的辦法正常提取了
其實(shí)也好辦你把他們分開做不就就完了:)


下面是完整實(shí)例

uup.htm
<html>
<a >www.cgfront.com</a>
<form name="loadfromfile" action="uup.asp" method="post" enctype="multipart/form-data">
<input type="submit" name="submit" value="OK">
<input type="file" name="loadfromfile" style="width:400" value="">
</form>
</html>

uup.asp
<%
formSize=Request.TotalBytes()
formData=Request.BinaryRead(formSize)
DataHeader=LeftB(formData,InStrB(formData,Chrb(13)&Chrb(10)))
strFileData=MIDB(formData,LenB(DataHeader),LenB(formData)-LenB(DataHeader)*2-3)
HeaderPos2=InStrB(strFileData,ChrB(AscB("-"))&ChrB(AscB("T"))&ChrB(AscB("y"))&ChrB(AscB("p"))&C

hrB(AscB("e")))
HeaderPos3=InStrB(HeaderPos2,strFileData,Chrb(13))
DataHeader2=LeftB(strFileData,HeaderPos3+4)
strFileData=MIDB(strFileData,LenB(DataHeader2),LenB(strFileData))
Response.binaryWrite(strFileData)
%>




如果你的鍵盤上ctrl+C +V鍵都已經(jīng)被你按壞了的話,沒關(guān)系我還給大家提供了相應(yīng)的測試地點(diǎn)

http://www.cgfront.com/up/uup.htm

最后希望大家多多指教。