java文件上传二进制_JAVA多文件 上传文件接口代码 -兼容app

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

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

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

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

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

首先在 Controller 里接收

UploadHelper.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

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;

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

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

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

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

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

首先在 Controller 里接收

UploadHelper.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

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;

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

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

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

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

首先在 Controller 里接收

UploadHelper.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

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;

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值