Spring Boot文件上传 的方法,今天在这里分享一下。

Step 1:前端准备:

fileupload.html,一个简单的表单:

--------------------------------------------------------------------
<form action="/upload" method="post"  enctype="multipart/form-data">
    <input type="file" id="photo" name="photo">
    <input type="submit">
</form>

Step2:application.properties配置

application.properties配置文件中如下配置:

#临时目录文件夹
spring.servlet.multipart.location=f:/temp/

#自定义文件保存目录
app.upload.path=f:upload/

#单个文件上传最大大小
spring.servlet.multipart.max-file-size=10MB

#单个请求最大上传大小
spring.servlet.multipart.max-request-size=50MB

Step 3:后台Controller:

@Controller
public class FileUploadController {

//   返回文件上传界面
    @RequestMapping("/")
    public String index(){
        return "fileupload";
    }

//    使用配置文件中自定义文件保存路径
@Value("${app.upload.path}")
    private String path=null;
    @PostMapping("/upload")

//    MultipartFile是上传文件接口,对应保存临时文件
//    参数名要和前端name属性保持一致
    public ModelAndView upload(@RequestParam("photo") MultipartFile photo) throws IOException {

//        文件保存的路径
//        String path="f:/upload/";

//        文件使用原有名称命名
//        String filename=photo.getOriginalFilename();

//        文件使用上传的时间命名
        String filename=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());

//        文件扩展名
        String suffix=  photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf("."));

//        限制上传的文件类型
        if(!suffix.equals(".jpg")){
            throw  new RuntimeException("图片格式错误");
        }

//        Spring 提供了一个文件操作类FileCopyUtils
        FileCopyUtils.copy(photo.getInputStream(),new FileOutputStream(path+filename+suffix));
        return null;
    }
}

标签云

ajax AOP Bootstrap cdn Chevereto CSS Docker Editormd GC Github Hexo IDEA JavaScript jsDeliver JS樱花特效 JVM Linux Live2D markdown Maven MyBatis MyBatis-plus MySQL Navicat Oracle Pictures QQ Sakura SEO Spring Boot Spring Cloud Spring Cloud Alibaba SpringMVC Thymeleaf Vue Web WebSocket Wechat Social WordPress Yoast SEO 代理 分页 图床 小幸运 通信原理