文件上传的原理.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文档。上传文档
查看更多
文件上传的原理   文件上传表单   首先需要编写一个能提供文件上传功能的表单,程序如下所示: Form action=upload.jsp method=post enctype=multipart/form-data 上传文件: Input type=file name=file1br input type=submit name=upload value=上传 /form   其中,enctype参数用来设置表单的MIME编码方式,在进行文件(或同时包含文本框)上传时,必须将其属性设置为multipart/form-data; 2、上传文件格式分析   分析浏览器上显示的上传文件的二进制代码,发现代码包括四个部分(若同时上传多个文件或文本框,则代码按上传的先后次序排列,格式相同),每一部分的内容是用回车换行符号来进行分隔的:   1)第一部分(起始标志)   -----------------------------7d329631b04d4   2)第二部分(文件说明) Content-Disposition: form-data; name=file1; filename=C:\Documents and Settings\Administrator\My Documents\Invitation.doc Content-Type: application/msword   在此,我们可以获得上传文件的文件名称及绝对路径,也可以获得文件类型。这些信息是正确保存文件所不可缺少的。   3)第三部分(文件内容)   即文件的二进制内容,略。   4)第四部分(结束标志) -----------------------------7d329631b04d4   结合第一部分和第四部分的内容来看,-----------------------------7d329631b04d4(每次上传,数值都不一样)起到了分割符的作用,它标志着一段数据(当有多个上传内容时)的开始和结束。从保存文件所需要的信息来讲,我们首先需要从第二部分数据的filename中获得文件名称,然后需要正确定位文件的起始位置,最后利用ASP技术将二进制文件用本来的文件名保存即可。若同时上传多个内容(如多个文本框和文件),也是按同样的方法处理,每部分的内容都包含在分割符之中,只是文本框和文件的表现形式稍有不同,这可以通过具体分析其二进制代码来了解。 ================================== Struts2上传文件 增加commons-fileupload-1.2.jar和commons-io-1.3.1.jar到lib ===== jsp ===== form 的 enctype 设置为 multipart/form-data ============== UploadAction ============== private String username; private String password; private File file; // 对应文件域 private String fileFileName; // 前面的File属性的名字 + FileName(固定的) private String fileContent; // 前面的File属性的名字 + Content // setter... getter... String execute() throws Exception { InputStream is = new FileInputStream( file ); String root = ServletActionContext.getRequest().getRealPath(/upload); File destFile = new File(root,this.getFileFileName()); OutputStream os = new FileOutputStream( destFile ); byte[] buffer = new byte[400]; int length = 0; while( (length = is.read(buffer)) 0 ) { os.write(buffer,0,length); } is.close(); os.close(); return SUCCESS; } ================= 中文问题 ================= 不过我全部用UTF-8并未遇到中文问题 struts2-core包 struts-default.xml

文档评论(0)

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

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

1亿VIP精品文档

相关文档