最短的无组件上传代码(仅9行)

王朝asp·作者佚名  2006-01-08
宽屏版  字体: |||超大  

我研究了一下无组件上传,并作出了一个最简单可行的方法

----用9行代码真正实现无组件上传,怎么说来花了才半天就写了9行代码算是有点效率和成果。

于是就写了这篇文章。

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--去处文件头后的数据,最后的输出值

HeaderPos2--Content-Type:的位置

HeaderPos3--例如:Content-Type:image/gif的位置

DataHeader2--整个前面的文件头

思想:

1。先直接去掉文件头和尾(例如-----------------------------7d230d1f940277)

2。跳过前面所有信息直接查找Content-Type:image/gif

3。提取有用的信息和字段

4。数据都提出来了至于怎么保存就简单了。至于用FSO或Adodb.Stream就随你了。

问题:

有人可能会讲一个表单不可能只有一个file

这样的话你的数据就不能用这么简单的办法正常提取了

其实也好办你把他们分开做不就就完了:)

下面是完整实例

uup.htm

<html>

<a href="http://www.cgfront.com">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键都已经被你按坏了的话,没关系我还给大家提供了相应的测试地点

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

最后希望大家多多指教。

作者:Leonard

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有