Java Spring Boot 上传文件和预览文件地址解析

Posted 代码很疯狂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Spring Boot 上传文件和预览文件地址解析相关的知识,希望对你有一定的参考价值。

    @RequestMapping(value ="/upload",method = RequestMethod.POST)
    @Permission(isAjax=false)
    public String Upload(HttpServletRequest request, HttpServletResponse response,@RequestParam("files") MultipartFile[] files) {
List<String> fileurl=new ArrayList<String>();
try {
       if(files.length>0){
            String uploaddir="d:/upload/2017-12-18/";
            File dir=new File(uploaddir);
            if(!dir.exists()){
                dir.mkdirs();
            }
            for(MultipartFile file :files){
                if(!file.isEmpty()){
                    String suffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
                    String filename=String.format("%s%s", UUID.randomUUID().toString(),suffix);
                    File fileinfo=new File(String.format("%s%s", uploaddir,filename));
                    FileUtils.writeByteArrayToFile(fileinfo, file.getBytes());    
                    String url=String.format("/2017-12-18/%s", filename);
                    fileurl.add(url);
                }
            }
          }
//
fileurl 图片地址清单
        } catch (IOException e) { 

}
}

下面是图片预览地址的解析方法

@Controller
public class HomeController {

    private final ResourceLoader resourceLoader;

    @Autowired
    public HomeController(ResourceLoader resourceLoader) {
        this.resourceLoader = resourceLoader;
    }

    @RequestMapping(method = RequestMethod.GET, value = "/{yyyy}-{MM}-{dd}/{filename:.+}")
    @ResponseBody
    public ResponseEntity<?> getFile(@PathVariable String yyyy, @PathVariable String MM, @PathVariable String dd, @PathVariable String filename) {
        try {
            return ResponseEntity.ok(resourceLoader.getResource(
                    "file:" + Paths.get("d:/upload/" + yyyy+"-"+MM+"-"+dd + "/", filename).toString()));
        } catch (Exception e) {
            return ResponseEntity.notFound().build();
        }
    }

}

 

访问图片地址为:http://localhost:8080/2017-12-18/956f293b-876e-4347-9fae-29ac290f357b.jpg

可以直接访问jar包以外,上传的文件、图片

 







以上是关于Java Spring Boot 上传文件和预览文件地址解析的主要内容,如果未能解决你的问题,请参考以下文章

java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL

009 spring boot中文件的上传与下载

江帅帅:精通 Spring Boot 系列 06

spring-boot上传文件MultiPartFile获取不到文件问题解决

Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件

Spring Boot 与 Kotlin 上传文件