╋艺 镇╋╋网站网络|程序语言|Flash╋┣◇网站建设&Web语言 → ASP_Net教程 最短的无组件上传代码(仅9行) 源码、源代码实例


  共有17878人关注过本帖树形打印复制链接

主题:ASP_Net教程 最短的无组件上传代码(仅9行) 源码、源代码实例

美女呀,离线,留言给我吧!
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27521 威望:0 精华:7 注册:2003/12/30 16:34:32
ASP_Net教程 最短的无组件上传代码(仅9行) 源码、源代码实例  发帖心情 Post By:2008/6/25 21:30:45 [只看该作者]

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


  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部
美女呀,离线,留言给我吧!
admin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27521 威望:0 精华:7 注册:2003/12/30 16:34:32
  发帖心情 Post By:2008/6/25 21:31:11 [只看该作者]

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

最后希望大家多多指教。

[此贴子已经被作者于2008-6-25 21:34:23编辑过]


  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部