栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Springboot】批量图片上传 从HttpServletRequest到List<MultipartFile>

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Springboot】批量图片上传 从HttpServletRequest到List<MultipartFile>

前言

本文实现批量图片上传,环境为:

JDK11

Maven 3.5

springboot 2.3.7

IntelliJ IDEA 2021.2.3 (Community Edition)

Postman-win64-8.12.4

实现 依赖配置

pom.xml



    4.0.0

    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.7.RELEASE
         
    

    org.example
    springboot-upload-image
    1.0-SNAPSHOT

    
        11
        11
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-web-services
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

application.properties

spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.max-file-size=10MB
功能编写

主程序类 MainApplication.java

package org.sample;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

控制类编写 FileController.java

package org.sample.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Iterator;
import java.util.List;

@RestController
@Slf4j
public class FileController {

    private static String UPLOAD_PATH = "File/image";

    // 上传图片
    @RequestMapping(value = "/uploadImage", method = RequestMethod.POST)
    @ResponseBody
    public String uploadImage(HttpServletRequest httpServletRequest) {
        MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) httpServletRequest;
        Iterator fileNames = multiRequest.getFileNames();
        List multipartFiles = multiRequest.getFiles(fileNames.next());

        for (MultipartFile image : multipartFiles) {
            try {
                String name = image.getOriginalFilename();
                System.out.println(name);

                InputStream inputStream = image.getInputStream();
                Path directory = Paths.get(UPLOAD_PATH);
                if (!Files.exists(directory)) {
                    Files.createDirectories(directory);
                }
                long copy = Files.copy(inputStream, directory.resolve(name));
            } catch (Exception e) {
                log.error(e.getMessage(), e);
                return "上传失败";
            }
        }

        return "上传成功,大小:" + " ; url访问路径为:" + UPLOAD_PATH;
    }
}

文件结构

运行

运行 MainApplication.java

打开postman,编写post请求如下:


请求体选择form-data,数据选择file类型,点击select files:


我们选择几个图片,然后send


上传成功,可以看到图片名字已经打印出来了


我们查看图片保存目录:


可以看到刚刚的图片,成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号