SpringBoot(七):檔案上傳
阿新 • • 發佈:2018-12-18
版權宣告
本作品採用知識共享署名 4.0 國際許可協議進行許可。 本文作者:低調小熊貓 文章連結:https://aodeng.cc/archives/springbootqi 轉載宣告:自由轉載-非商用-非衍生-保持署名,非商業轉載請註明作者及出處,商業轉載請聯絡作者本人qq:2696284032
單純的廣告
微信公眾號:低調小熊貓qq交流群:756796932
單一檔案上傳
@PostMapping("uploadOne") public String uploadOne(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes){ if(file.isEmpty()){ redirectAttributes.addFlashAttribute("message","請選擇上傳檔案"); return "redirect:uploadShow"; } try { //獲取檔案並儲存 byte[] bytes = file.getBytes(); Path path= Paths.get(UPLOADED_FOLDER+file.getOriginalFilename()); Files.write(path,bytes); redirectAttributes.addFlashAttribute("message",file.getOriginalFilename()+"檔案上傳完成"); }catch (IOException e){ e.printStackTrace(); } return "redirect:uploadShow"; }
Base64檔案上傳
@PostMapping("/uploadBase") @ResponseBody public void upload2(String base64) throws IOException { // TODO BASE64 方式的 格式和名字需要自己控制(如 png 圖片編碼後字首就會是 data:image/png;base64,) final File tempFile = new File("c:\\temp\\test.jpg");//上傳檔案儲存的路徑 // TODO 防止有的傳了 data:image/png;base64, 有的沒傳的情況 String[] d = base64.split("base64,"); final byte[] bytes = Base64Utils.decodeFromString(d.length > 1 ? d[1] : d[0]); FileCopyUtils.copy(bytes, tempFile); }