我们在 multifile 中可以很容易的发现如何使用,这里就简单说说了,首先在页面上我们需要有这样几行标签代码

然后在该页面中引入相关的JS和CSS

然后通过js和设置刚刚写入的标签

当然,上面的这段 JS 以及上面的 HTML 标签,我们可以根据实际的情况参考官网上的 Demo 上说明的属性进行设置。

Ok ,前台我们使用这个插件的地方基本就 ok 了,下面我们需要关心的是后台我们如何处理这里上传的多文件进行保存。在调研的过程中我将这一部分简单的写了一个工具类。

首先在 Controller 里接收

UploadHelper.java
packageorg.elongcom.common;importjava.io.File;importjava.util.Arrays;importjava.util.LinkedList;importjava.util.List;importjava.util.UUID;importjavax.servlet.http.HttpServletRequest;importorg.springframework.util.FileCopyUtils;importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.multipart.MultipartHttpServletRequest;/***@authorxdwang
*
* @create 2012-11-19 下午6:24:03
*
* @email:xdwangiflytek@gmail.com
*
* @description 上传帮助类
**/
public classUploadHelper {/*** @descrption 根据HttpServletRequest对象获取MultipartFile集合
*@authorxdwang
* @create 2012-11-19下午5:11:41
*@paramrequest
*@parammaxLength
* 文件最大限制
*@paramallowExtName
* 不允许上传的文件扩展名
*@returnMultipartFile集合*/
public static ListgetFileSet(HttpServletRequest request,longmaxLength, String[] allowExtName) {
MultipartHttpServletRequest multipartRequest= null;try{
multipartRequest=(MultipartHttpServletRequest) request;
}catch(Exception e) {return new LinkedList();
}
List files = new LinkedList();
files= multipartRequest.getFiles("attach");//移除不符合条件的
for (int i = 0; i < files.size(); i++) {if (!validateFile(files.get(i), maxLength, allowExtName)) {
files.remove(files.get(i));if (files.size() == 0) {returnfiles;
}
}
}returnfiles;
}/*** @descrption 保存文件
*@authorxdwang
* @create 2012-11-19下午4:17:36
*@paramfile
* MultipartFile对象
*@parampath
* 保存路径,如“D:\\File\\”
*@return保存的全路径 如“D:\\File\\2345678.txt”
*@throwsException
* 文件保存失败*/
public staticString uploadFile(MultipartFile file, String path)throwsException {
String filename=file.getOriginalFilename();
String extName= filename.substring(filename.lastIndexOf("."))
.toLowerCase();
String lastFileName= UUID.randomUUID().toString() +extName;if (!path.endsWith(File.separator)) {
path= path +File.separator;
}
File temp= newFile(path);if (!temp.isDirectory()) {
temp.mkdir();
}//图片存储的全路径
String fileFullPath = path +lastFileName;
FileCopyUtils.copy(file.getBytes(),newFile(fileFullPath));returnfileFullPath;
}/*** @descrption 验证文件格式,这里主要验证后缀名
*@authorxdwang
* @create 2012-11-19下午4:08:12
*@paramfile
* MultipartFile对象
*@parammaxLength
* 文件最大限制
*@paramallowExtName
* 不允许上传的文件扩展名
*@return文件格式是否合法*/
private static boolean validateFile(MultipartFile file, longmaxLength,
String[] allowExtName) {if (file.getSize() < 0 || file.getSize() >maxLength)return false;
String filename=file.getOriginalFilename();//处理不选择文件点击上传时,也会有MultipartFile对象,在此进行过滤
if (filename == "") {return false;
}
String extName= filename.substring(filename.lastIndexOf("."))
.toLowerCase();if (allowExtName == null || allowExtName.length == 0
|| Arrays.binarySearch(allowExtName, extName) != -1) {return true;
}else{return false;
}
}
}

这里需要多说一点的是,表单提交时如果有文件进行上传时,需要在表单上设置enctype="multipart/form-data",否则上面的 multipartRequest = (MultipartHttpServletRequest) request;进行强转时会报错

我们在 multifile 中可以很容易的发现如何使用,这里就简单说说了,首先在页面上我们需要有这样几行标签代码

然后在该页面中引入相关的JS和CSS

然后通过js和设置刚刚写入的标签

当然,上面的这段 JS 以及上面的 HTML 标签,我们可以根据实际的情况参考官网上的 Demo 上说明的属性进行设置。

Ok ,前台我们使用这个插件的地方基本就 ok 了,下面我们需要关心的是后台我们如何处理这里上传的多文件进行保存。在调研的过程中我将这一部分简单的写了一个工具类。

首先在 Controller 里接收

UploadHelper.java
packageorg.elongcom.common;importjava.io.File;importjava.util.Arrays;importjava.util.LinkedList;importjava.util.List;importjava.util.UUID;importjavax.servlet.http.HttpServletRequest;importorg.springframework.util.FileCopyUtils;importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.multipart.MultipartHttpServletRequest;/***@authorxdwang
*
* @create 2012-11-19 下午6:24:03
*
* @email:xdwangiflytek@gmail.com
*
* @description 上传帮助类
**/
public classUploadHelper {/*** @descrption 根据HttpServletRequest对象获取MultipartFile集合
*@authorxdwang
* @create 2012-11-19下午5:11:41
*@paramrequest
*@parammaxLength
* 文件最大限制
*@paramallowExtName
* 不允许上传的文件扩展名
*@returnMultipartFile集合*/
public static ListgetFileSet(HttpServletRequest request,longmaxLength, String[] allowExtName) {
MultipartHttpServletRequest multipartRequest= null;try{
multipartRequest=(MultipartHttpServletRequest) request;
}catch(Exception e) {return new LinkedList();
}
List files = new LinkedList();
files= multipartRequest.getFiles("attach");//移除不符合条件的
for (int i = 0; i < files.size(); i++) {if (!validateFile(files.get(i), maxLength, allowExtName)) {
files.remove(files.get(i));if (files.size() == 0) {returnfiles;
}
}
}returnfiles;
}/*** @descrption 保存文件
*@authorxdwang
* @create 2012-11-19下午4:17:36
*@paramfile
* MultipartFile对象
*@parampath
* 保存路径,如“D:\\File\\”
*@return保存的全路径 如“D:\\File\\2345678.txt”
*@throwsException
* 文件保存失败*/
public staticString uploadFile(MultipartFile file, String path)throwsException {
String filename=file.getOriginalFilename();
String extName= filename.substring(filename.lastIndexOf("."))
.toLowerCase();
String lastFileName= UUID.randomUUID().toString() +extName;if (!path.endsWith(File.separator)) {
path= path +File.separator;
}
File temp= newFile(path);if (!temp.isDirectory()) {
temp.mkdir();
}//图片存储的全路径
String fileFullPath = path +lastFileName;
FileCopyUtils.copy(file.getBytes(),newFile(fileFullPath));returnfileFullPath;
}/*** @descrption 验证文件格式,这里主要验证后缀名
*@authorxdwang
* @create 2012-11-19下午4:08:12
*@paramfile
* MultipartFile对象
*@parammaxLength
* 文件最大限制
*@paramallowExtName
* 不允许上传的文件扩展名
*@return文件格式是否合法*/
private static boolean validateFile(MultipartFile file, longmaxLength,
String[] allowExtName) {if (file.getSize() < 0 || file.getSize() >maxLength)return false;
String filename=file.getOriginalFilename();//处理不选择文件点击上传时,也会有MultipartFile对象,在此进行过滤
if (filename == "") {return false;
}
String extName= filename.substring(filename.lastIndexOf("."))
.toLowerCase();if (allowExtName == null || allowExtName.length == 0
|| Arrays.binarySearch(allowExtName, extName) != -1) {return true;
}else{return false;
}
}
}

这里需要多说一点的是,表单提交时如果有文件进行上传时,需要在表单上设置enctype="multipart/form-data",否则上面的 multipartRequest = (MultipartHttpServletRequest) request;进行强转时会报错我们在 multifile 中可以很容易的发现如何使用,这里就简单说说了,首先在页面上我们需要有这样几行标签代码

然后在该页面中引入相关的JS和CSS

然后通过js和设置刚刚写入的标签

当然,上面的这段 JS 以及上面的 HTML 标签,我们可以根据实际的情况参考官网上的 Demo 上说明的属性进行设置。

Ok ,前台我们使用这个插件的地方基本就 ok 了,下面我们需要关心的是后台我们如何处理这里上传的多文件进行保存。在调研的过程中我将这一部分简单的写了一个工具类。

首先在 Controller 里接收

UploadHelper.java

packageorg.elongcom.common;importjava.io.File;importjava.util.Arrays;importjava.util.LinkedList;importjava.util.List;importjava.util.UUID;importjavax.servlet.http.HttpServletRequest;importorg.springframework.util.FileCopyUtils;importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.multipart.MultipartHttpServletRequest;/***@authorxdwang
*
* @create 2012-11-19 下午6:24:03
*
* @email:xdwangiflytek@gmail.com
*
* @description 上传帮助类
**/
public classUploadHelper {/*** @descrption 根据HttpServletRequest对象获取MultipartFile集合
*@authorxdwang
* @create 2012-11-19下午5:11:41
*@paramrequest
*@parammaxLength
* 文件最大限制
*@paramallowExtName
* 不允许上传的文件扩展名
*@returnMultipartFile集合*/
public static ListgetFileSet(HttpServletRequest request,longmaxLength, String[] allowExtName) {
MultipartHttpServletRequest multipartRequest= null;try{
multipartRequest=(MultipartHttpServletRequest) request;
}catch(Exception e) {return new LinkedList();
}
List files = new LinkedList();
files= multipartRequest.getFiles("attach");//移除不符合条件的
for (int i = 0; i < files.size(); i++) {if (!validateFile(files.get(i), maxLength, allowExtName)) {
files.remove(files.get(i));if (files.size() == 0) {returnfiles;
}
}
}returnfiles;
}/*** @descrption 保存文件
*@authorxdwang
* @create 2012-11-19下午4:17:36
*@paramfile
* MultipartFile对象
*@parampath
* 保存路径,如“D:\\File\\”
*@return保存的全路径 如“D:\\File\\2345678.txt”
*@throwsException
* 文件保存失败*/
public staticString uploadFile(MultipartFile file, String path)throwsException {
String filename=file.getOriginalFilename();
String extName= filename.substring(filename.lastIndexOf("."))
.toLowerCase();
String lastFileName= UUID.randomUUID().toString() +extName;if (!path.endsWith(File.separator)) {
path= path +File.separator;
}
File temp= newFile(path);if (!temp.isDirectory()) {
temp.mkdir();
}//图片存储的全路径
String fileFullPath = path +lastFileName;
FileCopyUtils.copy(file.getBytes(),newFile(fileFullPath));returnfileFullPath;
}/*** @descrption 验证文件格式,这里主要验证后缀名
*@authorxdwang
* @create 2012-11-19下午4:08:12
*@paramfile
* MultipartFile对象
*@parammaxLength
* 文件最大限制
*@paramallowExtName
* 不允许上传的文件扩展名
*@return文件格式是否合法*/
private static boolean validateFile(MultipartFile file, longmaxLength,
String[] allowExtName) {if (file.getSize() < 0 || file.getSize() >maxLength)return false;
String filename=file.getOriginalFilename();//处理不选择文件点击上传时,也会有MultipartFile对象,在此进行过滤
if (filename == "") {return false;
}
String extName= filename.substring(filename.lastIndexOf("."))
.toLowerCase();if (allowExtName == null || allowExtName.length == 0
|| Arrays.binarySearch(allowExtName, extName) != -1) {return true;
}else{return false;
}
}
}

这里需要多说一点的是,表单提交时如果有文件进行上传时,需要在表单上设置enctype="multipart/form-data",否则上面的 multipartRequest = (MultipartHttpServletRequest) request;进行强转时会报错