springboot基于MultipartFile实现文件上传

MultipartFile是springMVC的jar包,不需要其它坐标,可以直接使用

一. 新建controller

@RequestMapping("/uploadTest1")
    public String test1(@RequestParam("imgFile") MultipartFile file, HttpServletRequest request){
        //获取上传文件名,包含后缀
        String originalFilename = file.getOriginalFilename();
        //获取后缀
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
        //保存的文件名
        String dFileName = UUID.randomUUID()+substring;
        //保存路径
        //springboot 默认情况下只能加载 resource文件夹下静态资源文件
        String path = "D:/workspace/demo2/src/main/resources/static/image/";
        //生成保存文件
        File uploadFile = new File(path+dFileName);
        System.out.println(uploadFile);
        //将上传文件保存到路径
        try {
            file.transferTo(uploadFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "上传"+dFileName+"成功";
    }

说明:
1. http://localhost:8080/uploadTest1
2. http请求方式实现文件上传条件:1.post请求 2.form表单提交 3.multipart/form-data 协议类型http请求方式
3. 上传后查看路径 http://localhost:8080/image/文件名.后缀

二. 限制上传文件大小

在启动类application.java添加@bean方法

/**
	 * 限制上传文件大小
	 */
	@Bean
	public MultipartConfigElement multipartConfigElement(){
		MultipartConfigFactory factory = new MultipartConfigFactory();
		//单个文件最大 5m 可以使用读取配置
		factory.setMaxFileSize("5120KB"); //KB,MB
		/// 设置总上传数据总大小 50m
		factory.setMaxRequestSize("512000KB");
		return factory.createMultipartConfig();
	}

说明:
可以将代码中限制大小的值存放到配置文件中,以读取配置的形式加载进来.

你可能感兴趣的:(springboot基于MultipartFile实现文件上传)