1.具体使用commons-fileupload组件完成文件的上传操作.
I. 搭建环境:加入
commons-fileupload-1.3.2.jar
commons-io-2.2.jar
II. 基本思想:
> commons-fileupload-1.3.2.jar:可以解析请求,得到一个FileItem对象组成的List
> commons-fileupload-1.3.2.jar:把所有的请求信息都解析稳FileItem对象,无论是一个文本域
还是一个文件域,都是解析成一个FileItem对象.
> 可以调用FileItem对象的isFormField()方法来判断是一个表单域或不是表单域(文件域)
> 再来进一步获取信息
if(item.isFormField()){
String name = item.getFieldName();
String value = item.getString();
...
}
if(!item.isFormField()){
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
InputStream uploadedStream = item.getInputStream();
...
uploadedStream.close();
}
III.如何得到List<FileItem>对象.
>简单的写法
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
>复杂的写法: 可以被文件的上传加入一些限制条件和其他的属性
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置内存中最多可以存放的上传文件的大小,若超出则把文件写到一个临时的文件夹中,
以byte为单位
factory.setSizeThreshold(yourMaxMemorySize);
//设置临时文件夹
factory.setRepository(yourTempDirectory);
ServletFileUpload upload = new ServletFileUpload(factory);
//设置上传文件的总的大小
upload.setSizeMax(yourMaxRequestSize);
List<FileItem> items = upload.parseRequest(request);
基于struts2的文件上传功能简单介绍
猜你喜欢
转载自blog.csdn.net/qq_41700374/article/details/81609649
今日推荐
周排行