springboot文件上传下载

springboot比较方便的下载方式,在此记录一下

public ResponseEntity<FileSystemResource> export(File file) {
    if (file == null) {
        return null;
    }
    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Disposition", "attachment;filename=" + file.getName());
    return ResponseEntity
            .ok()
            .headers(headers)
            .contentLength(file.length())
            .contentType(MediaType.parseMediaType("application/octet-stream"))
            .body(new FileSystemResource(file));
}

使用方式如下:

@RequestMapping("/downLoadImg")
    public ResponseEntity<FileSystemResource> downLoadImg(HttpServletRequest request) {
        String imgPath = request.getParameter("img");
        //文件路径
        String filePath = SDKUtils.getImgPath() + imgPath;
        return export(new File(filePath));
    }

文件上传方式

    @PostMapping(value = "/upload")
    public CommonResult upload(@RequestParam("file") MultipartFile file) {
        String fileName = file.getOriginalFilename();
        //FileUtil 是使用hutool 工具类的   touch  : 创建文件,如果父目录不存在也自动创建
        //resourceConfig.getImageUrl()  存储路径
        File mkdir = FileUtil.touch(resourceConfig.getImageUrl() + fileName);
        try {
            //据说性能不错,使用方便,还没验证
            file.transferTo(mkdir);
            return CommonResult.success("上传成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return CommonResult.error("上传失败");
    }

 

posted on 2019-09-19 12:02  瞿亮  阅读(816)  评论(0编辑  收藏  举报

导航