2012无组件上传.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
无组件上传·从原理剖析到实践 无组件上传一直是困扰大家的一个问题。其实原理很简单,核心就是分析字符串。但是,实际操作时,却困难重重。其中的关键问题还是大家往往对原理的剖析不够深入,或者是因为过程过于繁琐,导致bug不断。一直以来,都想做一个完善的例子,只不过想想就头痛,加上没时间(借口,呵呵 ),所以没有付诸行动。 今天就咬咬牙,给大家提供一个完整的无组件上传的例子。因为本人耐性不好,所以咱们一点一点来,分几天完成。未来的几天,我会天天更新这个文档,这个过程也是大家学习和提高的过程。 (完整的源码和示例,可以在这里找到:/asp/attach/A0000006.zip) ============================================================== 第一天:认识我们的解剖对象——数据 上传文件时,首先要知道我们得到的是什么。下面是一个上传文件的表单,我们就从他开始。 form action=doupload.asp method=post enctype=multipart/form-data file1说明:input type=text name=file1_desc nbsp; file1input type=file name=file1br file2说明:input type=text name=file2_desc nbsp; file2input type=file name=file2br input type=submit name=upload value=upload /form 表单中enctype=multipart/form-data的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作(有兴趣的朋友,可以自己试试看两者的异同。方法很简单,就是把这一句去掉)。现在,我们在表单中分别填入数据: file1的说明 D:\我的 图片\BACK046.GIF file2的说明 D:\我的 图片\BACK293.GIF 这里用了中英文、空格混排。目的是让例子更有一般性。我选的这两个图片分别是54和62字节。大图片的原理完全一样,不过小图片做例子更合适些,原理容易展现。 为了看到我们得到的数据,在doupload.asp里,有这几行代码: % formsize=request.totalbytes formdata=request.binaryread(formsize) response.BinaryWrite(formdata) % 很简单,作用就是打出来传过来的所有数据。如果不熟悉,你可以先研究一下request和response对象的这两个方法。 提交表单,我们在ie里面查看html源,得到: -----------------------------7d22131090458 Content-Disposition: form-data; name=file1_desc file1μ??μ?÷ -----------------------------7d22131090458 Content-Disposition: form-data; name=file1; filename=D:\?òμ? í???\BACK046.GIF Content-Type: image/gif GIF89a‘ì?f?f3?ì???ì!ù,@ ?.á?o ; -----------------------------7d22131090458 Content-Disposition: form-data; name=file2_desc file2μ??μ?÷ -----------------------------7d22131090458 Content-Disposition: form-data; name=file2; filename=D:\?òμ? í???\BACK293.GIF Content-Type: image/gif GIF89a(‘???YYYììì!ù,(@L#8364;?j(·j?N(34ˉ; -----------------------------7d22131090458 Content-Disposition: form-data; name=upload upload -----------------------------7d22131090458-- 不用怀疑,这就是你从上一个“简单”表单传过

文档评论(0)

HmkgUpfWkI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档