文件上传
spring-boot上传的文件,使用MultipartFile file对象来接收,具体的接口有以下几个
- @RequestParam("filename")MultipartFile file //使用MultipartFile来接受上传文件
- file.isEmpty() //判断上传文件是否为空
- file.getContentType() //获取文件类型
- file.getInputStream() //获取文件的输入流
- file.getSize() //获取文件的尺寸
- file.getOriginalFilename();//获取上传文件名称
- file.getBytes();//获取上传文件的byte[]
- file.transferTo(dest);//表示将上传文件写入目标文件
下面看一个例子,前台上传一个文件到这个接口,然后接口处理
package com.example.demo.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.UUID;@RestController@RequestMapping(value = "/upload")public class UploadController { @Value("${upload.dir}") private String UPLOAD_DIR; //上传单个文件 @PostMapping(value = "/file") public String upload(@RequestParam("filename")MultipartFile file){ String subName=""; try{ subName = executeUpload(file); }catch (Exception e){ e.getStackTrace(); return "上传失败:"+e.getMessage(); } return "上传成功,文件名:"+subName; } //上传多个文件 @PostMapping(value = "/files") public ArrayListuploads(@RequestParam("filename") MultipartFile[] files){ ArrayList filenames = new ArrayList<>(); if(files.length==0){ return filenames; } for(int i=0;i
上传文件大小配置
上传文件大小的配置在application.properties中配置
- spring.http.multipart.max-file-size=1024MB 最大的上传限制容量
- spring.http.multipart.max-request-size=10MB 最大的请求容量