1. 程式人生 > >SpringBoot(七):檔案上傳

SpringBoot(七):檔案上傳

版權宣告

本作品採用知識共享署名 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);
    }

原始碼地址