1. 程式人生 > >SpringBoot學習筆記(8)-----SpringBoot檔案上傳

SpringBoot學習筆記(8)-----SpringBoot檔案上傳

直接上程式碼,上傳檔案的前端頁面:

<body>
    <form action="/index/upload" enctype="multipart/form-data" method="post">
        <input type="file" name="file">
        <input type="submit" value="提交">
    </form>
</body>

 後臺上傳方法:

/**
     *  檔案上傳
     * @param file
     * 
@return */ @RequestMapping("/upload") @ResponseBody public String upload (@RequestParam("file")MultipartFile file) { String msg = ""; //獲取上傳檔名 String fileName = file.getOriginalFilename(); //獲取上傳檔案字尾名 String suffixName = fileName.substring(fileName.lastIndexOf("."));
//定義檔案儲存路徑 String savePath = "D:\\dev-idea\\study\\spring-boot-demo01\\src\\main\\resources\\upload\\"; //使用UUID+字尾名儲存檔名,防止中文亂碼問題, fileName = UUID.randomUUID() + suffixName; //構建file物件 File files = new File(savePath+fileName); if (!files.getParentFile().exists()) { files.mkdirs(); }
try { file.transferTo(files); msg = "儲存成功"; } catch (IOException e) { msg = "儲存失敗"; e.printStackTrace(); } return msg; }

  這樣就完成了檔案的上傳,當然這裡只是一個demo,只儲存了檔案,在實際的運用開發中,還需要將檔案路徑和檔名儲存到資料庫中,使用檔案的時候根據該路徑去找到檔案。

  在SpringBoot中也針對檔案上傳提供了一些配置。

  

  在示例中,SpringBoot預設上傳檔案大小為10Mb,如果我們上傳的問題件大於10Mb時,系統會出現FileUploadBase$SizeLimitExceededException異常,此時我們可以根據我們的需求,使用spring.servlet.multipart.max-file-size來配置我們自己需要的最大上傳檔案大小和request-size,request-size應該總是要大於file-size,還可以使用intermediate配置一個零時檔案等。