SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

如何在SpringBoot当中上传多个图片【上传多个图片 工具类】

 

1.SpringBoot 上传图片工具类

 1 public class SpringUploadUtil {
 2 
 3     
 4     /***
 5      * 上传图片后返回文件名称用于存储数据库
 6      * @author MRC
 7      * @date 2019年4月8日上午11:22:54
 8      * @return
 9      */
10     public static String uploadPics(List<MultipartFile> file){
11         
12         int index = 0;
13         StringBuffer sb = new StringBuffer();
14         
15         for (MultipartFile multipartFile : file) {
16             if (file.isEmpty()) {
17                 continue;
18             }
19             try {
20                 //工具类生成文件名
21                 String fileName = FileCreateNameUtils.toCreateName();
22                 //获取文件后缀名
23                 String fileType  = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf("."));
24                 File f = new File("D:\\upload\\"+fileName+fileType);
25                 if (f.exists()) {
26                     //判断这个文件是否存在,若存在则变换文件名 防止覆盖
27                     fileName = FileCreateNameUtils.toCreateName();
28                 }
29                 byte[] bytes = multipartFile.getBytes();
30                 Path path = Paths.get("upload/" + fileName+fileType);
31                 //写入磁盘
32                 Files.write(path, bytes);
33                 
34                 sb.append(StaticUtils.UPLOAD+fileName+fileType);
35                 index++;
36                 if (file.size() != index ) {
37                     sb.append(",");
38                 }
39             } catch (IOException e) {
40                 e.printStackTrace();
41             }
42         }
43         
44         return sb.toString();
45     }

 

**注明 文件名生成的工具类

public class FileCreateNameUtils {
    
    
    
    public static final String numberChar = "0123456789";
    
    /***
     * 文件名生成工具类
     */

    public static String toCreateName() {

        return getNowDatetoString() + generateNum(10);

    }

    /***
     * 生成日期字符串 yyyyMMddHHmm
     * 
     * @author MRC
     * @date 2019年4月16日下午2:19:37
     * @return
     */
    public static String getNowDatetoString() {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmm");
        String dateString = formatter.format(currentTime);
        return dateString;
    }
    
    /***
     * 生成随机数
     * @author MRC
     * @date 2019年4月16日下午2:21:06
     * @param len
     * @return
     */
    public static String generateNum(int len) {
        StringBuffer sb = new StringBuffer();
        Random random = new Random();
        for (int i = 0; i < len; i++) {
            sb.append(numberChar.charAt(random.nextInt(numberChar.length())));
        }
        return sb.toString();
    }

 

2.在Controller层调用上传图片方法

 

 

    @PostMapping("orderComment")
    @ResponseBody
    public Map<String, Object> orderComment(HttpServletRequest request){
        
        Map<String, Object> map = new HashMap<>();
        
        List<MultipartFile> list = ((MultipartHttpServletRequest)request).getFiles("file");
        
        String pics = null;
        if (list.size() != 0) {
            //上传图片
            pics = SpringUploadUtil.uploadPics(list);
        }
    
    // pics = "upload/2019041615094470712493.jpg,upload/2019041615094470712456.jpg"
}

 

上传后返回 图片路径拼接的字符串  使用英文状态下(,)分隔

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄