2013第38周日Java文件上传下载收集思考
1) application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。
2) multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。
3) text/plain:这种方式主要适用于直接通过表单发送邮件的方式。
文件上传原理是,通过为表单元素设置enctype=”multipart/form-data”属性,让表单提交的数据以二进制编码的方式提交,在接收此请求的Servlet中用二进制流来获取内容,就可以取得上传文件的内容,从而实现文件的上传。
Java领域中,有两个常用的文件上传项目:
一个是Apache组织Jakarta的Common-FileUpload组件;
http://commons.apache.org/fileupload/
另一个是Oreilly组织的COS框架;
利用这两个框架都能很方便的实现文件的上传。
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。它在原上传框架上做了进一步封装,简化了文件上传的代码实现,取消了不同上传框架上的编程差异。
将文件上传组件的JAR文件复制到项目的classpath路径下。
如果要改成其它的文件上传框架,可以修改struts.multipart.parser常量的值为cos/pell,默认值是jakata。并在classpath中增加相应上传组件的类库。
最新文章
- Pod 的安装
- 微信公众平台消息接口开发之微信浏览器HTTP_USER_AGENT判断
- 执行gem install linne时报错
- zedboard如何从PL端控制DDR读写(七)
- 重新想象 Windows 8 Store Apps (53) - 绑定: 与 ObservableCollection CollectionViewSource VirtualizedFilesVector VirtualizedItemsVector 绑定
- Unity3D如何制作透贴和使用透贴模型
- objective-c自学总结(一)---面向对象
- h2database源码浅析:集群
- Java如何实现对Mysql数据库的行锁
- asp.net mvc使用validate.js验证 若name属性包含特殊字符则加上双引号即可
- JSP文件转换成为JAVA文件后的结构
- LNMP状态管理命令
- jsp内置对象-session对象
- IntelliJ IDEA安装、配置、测试
- if语句实例
- 【bzoj3064】 CPU监控
- phpunit 生成三种日志文件的配置方法
- Javascript中Generator(生成器)
- 启动 Eclipse 报错 “An internal error occurred during: ";Initializing Java Tooling";. java.lang.NullPointerException”
- flink学习笔记:DataSream API
热门文章
- ZOJ1221 &;&; UVA567:Risk(Floyd)
- EMV/PBOC解析(三) TLV格式解析(C#)
- javascript中的继承用法
- Java基础知识强化96:Calendar类之获取任意年份的2月有多少天的案例
- 2015 UESTC Winter Training #7【2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest】
- 第2章 来点C#的感觉
- LINQ Enumerable 续 II
- css布局篇
- ASP.Net MVC 之FileResult
- SpringMVC简单例子