zoukankan      html  css  js  c++  java
  • 如何在SpringBoot当中上传多个图片或者上传单个图片 工具类

    如何在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     }

    经过工具类图片上传后,返回的字符串是用逗号分隔的图片上传后的路径!

    举个栗子: upload/2019041615094470712493.jpg,upload/2019041615094470712456.jpg

    **注明 文件名生成的工具类 按照时间戳和随机字符串生成文件的名字

    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<>();
            
         // 从前台的请求当中取出 file文件类型 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"
    }

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


    3.前台上传部分代码示例

    <html>
    <body>
    <h1>Spring Boot file upload example</h1>
    <form method="POST" action="/upload" enctype="multipart/form-data">
        <input type="file" name="file" /><br/><br/>
        <input type="file" name="file" /><br/><br/>
        <input type="submit" value="Submit" />
    </form>
    </body>
    </html>


    4.参考博客:https://www.cnblogs.com/ityouknow/p/8298344.html

  • 相关阅读:
    第三章 AjaxPro框架
    第一章 ASP.NET XML与JSON
    第二章 ASP.NET Ajax核心对象
    第五次作业
    第四次作业
    第三周笔记
    第二周笔记
    Java作业
    日期顺时,自动跳过节假日
    利用java实现excel转pdf文件
  • 原文地址:https://www.cnblogs.com/ChromeT/p/10717717.html
Copyright © 2011-2022 走看看