网站大量收购闲置独家精品文档,联系QQ:2885784924

web开发中文件的上传下载.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
web开发中文件的上传下载

 1. 文件上传的原理:   表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:   1) application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。   2) multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。   3) text/plain:这种方式主要适用于直接通过表单发送邮件的方式。   文件上传是web应用经常用到的一个知识。原理是,通过为表单元素设置enctype=”multipart/form-data”属性,让表单提交的数据以二进制编码的方式提交,在接收此请求的Servlet中用二进制流来获取内容,就可以取得上传文件的内容,从而实现文件的上传。   在Java领域中,有两个常用的文件上传项目:一个是Apache组织Jakarta的Common-FileUpload组件(/fileupload/),另一个是Oreilly组织的COS框架(/cos/)。利用这两个框架都能很方便的实现文件的上传。   2. Struts2的文件上传:   Struts2并未提供自己的请求解析器,也就是就Struts2不会自己去处理multipart/form-data的请求,它需要调用其他请求解析器,将HTTP请求中的表单域解析出来。但Struts2在原有的上传解析器基础上做了进一步封装,更进一步简化了文件上传。   Struts2默认使用的是Jakarta的Common-FileUpload框架来上传文件,因此,要在web应用中增加两个Jar文件:commons-fileupload-1.2.jar和commons-io-1.3.1.jar。它在原上传框架上做了进一步封装,简化了文件上传的代码实现,取消了不同上传框架上的编程差异。   如果要改成其它的文件上传框架,可以修改struts.multipart.parser常量的值为cos/pell,默认值是jakata。并在classpath中增加相应上传组件的类库。   2.1. 步骤一:创建带上传表单域的页面<%@ page language=java contentType=text/html; charset=UTF-8%> <html> <head> <title>Struts2 File Upload</title> </head> <body> <form action=fileUpload.action method=POST enctype=multipart/form-data> 文件标题:<input type=text name=title size=50/><br/> 选择文件:<input type=file name=upload size=50/><br/> <input type=submit value= 上传 /> </form> </body> </html>   此页面特殊之处只是把表单的enctype属性设置为multipart/form-data。   2.2. 步骤二:创建处理上传请求的Action类 package org.qiujy.web.struts2; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; /** *处理文件上传的Action类 *@authorqiujy *@version1.0 */ publicclass FileUploadAction extends ActionSupport { privatestaticfinalintBUFFER_SIZE = 16 * 1024; // 文件标题 private String title; // 上传文件域对象 private File upload; // 上传

文档评论(0)

pep2233 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档