首页 >> 读书频道 >> 电脑 >> 最短的无组件上传代码(仅9行)
 
· 在线实时开通FTP&WE
· 最新的ASP、IIS安全
· 做网页有哪些技术
· SQL基础(六
· “变量”是计算机内存中已
· 防CC攻击的asp代码
· ASP 错误代码
· 服务器频繁的死机是什么原
· JAVA+ACCESS编
· 用Java将文件名从中文
· Java编程学习:自己D
· 利用 Jsp+Tagli
 
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
· 2006高考录取规则
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

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


查看有无更新版本

关键字:ASP 2006-9-16

 

我研究了一下无组件上传,并作出了一个最简单可行的方法
----用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)
%>

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

[ 1 ]
最短的无组件上传代码(仅9行) num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑