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 Hexo IDEA IPA JavaScript jsDeliver JS樱花特效 JVM Linux markdown Maven MyBatis MyBatis-plus MySQL Pictures QQ Sakura SEO shadowrocket Spring Boot SpringMVC SSR Thymeleaf V2ray Vue Web WebSocket Wechat Social WordPress Yoast SEO 代理 分页 图床 小幸运 苹果iOS国外账号 苹果IOS账号 通信原理

本文最后更新于2019年9月9日,已超过 10 个月没更新!