SpringMVC实现文件上传

来源:互联网 发布:淘宝模特多少钱一天 编辑:程序博客网 时间:2024/06/08 09:27

最近给一个小功能的时候用到了文件上传,以前都是在用Servlet实现,这次想着用SpringMVC实现,写完后发现SpringMVC实现文件上传实在是太方便了。接下来就把代码和大家分享一下

package com.feicuiedu.util;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.springframework.web.multipart.commons.CommonsMultipartFile;/** * 文件处理工具类 * @author Wangbt * */public class FileUtil {    // 文件保存本地磁盘路径    private static final String UPLOAD_URL = "E:/OA";    /**     * 文件上传<br>     * 支持多文件上传     * @param files     * @return     */    public static List<Map<String, String>> fileUpload(CommonsMultipartFile[] files, String url) {        if (files == null || files.length == 0)            return null;        List<Map<String, String>> fileInfo = new ArrayList<>();        try {            for (int i = 0; i < files.length; i++) {                if (!files[i].isEmpty()) {// 判断文件是否为空                    Map<String, String> map = new HashMap<>();                    String pashParent = UPLOAD_URL + url;                    File file = new File(pashParent);                    if (!file.exists())// 如果保存的文件路径不存在,就创建响应目录                        file.mkdirs();                    String fileName = new Date().getTime() + "." + files[i].getOriginalFilename().split("\\.")[1];                    String pash = pashParent + fileName;                    // 保存文件路径和原文件名                    map.put("url", url + fileName);                    map.put("formerly", files[i].getOriginalFilename());                    fileInfo.add(map);                    // 获取输出流                    FileOutputStream fos = new FileOutputStream(pash);                    // 获取输入流                    InputStream is = files[i].getInputStream();                    // 以字节方式写入文件                    int a = 0;                    while (((a = is.read())) != -1) {                        fos.write(a);                    }                    fos.flush();                    fos.close();                    is.close();                }            }        } catch (Exception e) {            e.printStackTrace();            return null;        }        return fileInfo;    }}
0 0
原创粉丝点击