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包以外,上傳的文件、圖片

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM