JavaWeb之文件上传 (祥讲)
来源:互联网 发布:淘宝网商家客服 编辑:程序博客网 时间:2024/05/01 21:49
(一)引入:文件的上传不同与文本的上传,我们可以通过request.getInputStream()来收集表单的文件域,但是用户可能会同时上传多个文件,这样的话就使得表单手机文件域变得复杂了。为了方便用户处理上传的数据,Apache开源组织提供了一个免费的开源软件专门用来处理文件上传commons-fileupload的开源组件,所以我们来学习一下这个开源组件的使用
All开源组件下载:http://download.csdn.net/detail/xiaozhegaa/9782663
(二)扩展:
1.使用commons-fileupload组件上传,需要导入相对应的支持jar包。commons-fileupload和commons-io。虽然commons-io不属于上传组建的开发jar包,但是在上传时需要改io包的支持。所以准备环境需要这两个jar包
//上面有下载commons-fileupload和commons-io
2.上传文件的过程其实就是一个文本复制的过程,也就是IO->二进制
3:不同浏览器对上传文件的路径有些不同的解析,
//低版本的IE: "c:\images\a.jpg" //高版本的浏览器: “a.jpg"
4:在form表单以MIME的协议去上传文件,通知服务器以二进制方式去读取
注意,也就是说如果你不通知的话,就不能使用该组建了。这时候采用普通方式request.getParameter()去获取表单数据就获取不到了
//在form 表单中添加enctype="multipart/form-data<form action="#" method="post" enctype="multipart/form-data">
(三):开发准备
//No1:导入相对应的jar包//No2:设置form的MIME协议//No3:写上传的代码,等会讲
(四):介绍几个重要的类,开发类
具体的可以下载upload包,查看文档哦
1: DiskFileItemFactory 是创建 FileItem 对象的工厂,这个工厂类常用方法:
setSizeThreshold(int size Threshold) ; 设置缓冲区的大小,满了就刷出,也就是上传大文件时,可多次写入缓存区。单位是字节,如果要设置10k , size = 1024 * 10;
setRepository(java.io.File repository):指定临时目录
public DiskFileItemFactory(int sizeThreshold, java.io.File repository):构造函数
2:ServletFileUpload 负责处理上传的文件数据,并将表单中每个输入项封装成一个 FileItem 对象中。常用方法有
boolean isMultipartContent(HttpServletRequest request) :判断上传表单是否为multipart/form-data类型
List parseRequest(HttpServletRequest request):解析request对象,并把表单中的每一个输入项包装成一个fileItem 对象,并返回一个保存了所有FileItem的list集合。
setFileSizeMax(long fileSizeMax) :设置上传文件的最大值(单位字节)
setSizeMax(long sizeMax) :设置上传文件总量的最大值
setHeaderEncoding(java.lang.String encoding) :设置编码格式,解决上传中文名文件的问题
3: fileItemList :上面经过parse方法之后返回就是fileItem集合:
boolean isFormFiled() :判断是否为普通字段
String getFileName() :获取表单的名字
String getString():获取表单的内容
String getString(“编码方式”):获取表单的内容,可以解决表单乱码问题。
int getSize():获取文件大小。也就是判断是否为空。if(item.getSize()==0){out.write(“无文件上传”);}
(五):上传源码
篇幅有点长。放在下一篇,有分析
- JavaWeb之文件上传 (祥讲)
- JavaWeb之文件上传
- JavaWeb之文件上传
- JavaWeb之文件上传
- 上传文件(javaWeb)
- JavaWeb之文件上传篇,
- javaweb之文件上传总结
- JavaWeb学习之文件上传
- JavaWeb之文件上传、下载
- javaweb之文件上传和下载
- JavaWeb之文件上传与下载详解
- 学习总结之JavaWeb实现文件上传
- javaweb中的文件上传之fileupload组件
- javaWeb之struts四---文件上传篇
- JavaWeb笔记之文件上传与下载
- 简单的文件上传(javaweb实现)
- javaweb文件上传
- javaweb文件上传原理
- Hibernate连接mysql数据的中文乱码问题
- 简述static,final,abstract三者的使用场景与注意事项
- 简单了解AJAX,AJAX封装与应用
- 欢迎使用CSDN-markdown编辑器
- D
- JavaWeb之文件上传 (祥讲)
- 在线PDU格式编码/解码
- 九度OJ1121首字母大写
- 北邮OJ-98. IP数据包解析-12计院上机D
- CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别
- 27. Remove Element 为什么我会想的很复杂
- TOM的借书方案(穷举法)
- 只显示你要显示的边框(内边框,外边框)
- 为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence?)