以文本方式查看主题 - ╋艺 镇╋ (http://wdystv.com/bbs/index.asp) -- ┣◇网站建设&Web语言 (http://wdystv.com/bbs/list.asp?boardid=4) ---- ASP_Net教程 最短的无组件上传代码(仅9行) 源码、源代码实例 (http://wdystv.com/bbs/dispbbs.asp?boardid=4&id=1737) |
-- 作者:admin -- 发布时间:2008/6/25 21:30:45 -- ASP_Net教程 最短的无组件上传代码(仅9行) 源码、源代码实例 我研究了一下无组件上传,并作出了一个最简单可行的方法 ----用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) |
-- 作者:admin -- 发布时间:2008/6/25 21:31:11 -- HeaderPos2=InStrB(strFileData,ChrB(AscB("-"))&ChrB(AscB("T"))&ChrB(AscB("y"))&ChrB(AscB("p"))&C [此贴子已经被作者于2008-6-25 21:34:23编辑过]
|