前提・実現したいこと
SpringBootでファイルをアップロードしたときにstaticフォルダに保存したい。
質問の閲覧ありがとうございます。
SpringBootを利用して、以下のような作業を行いたい為にstaticフォルダに保存したいと思っています。
- 画像ファイルを<input type="file">からアップロード
- コントローラーでセッションにファイル名を保存
- Thymeleafで th:src=${session}で画像を表示させたい
(でもその為にはstaticにファイルが入っている必要があると考えました)
具体的に「どうやったらstaticに保存されるのか?」が最も疑問です。staticのパスを抽出する方法が最も知りたい情報です。
当方初心者につき、何か思い違いをしている可能性もあると思います。その場合はご教授頂けたらと思います。また情報不足の場合は仰ってください。
よろしくお願いいたします。
試したこと
HTML
1<body> 2<form method="post" action="upload" enctype="multipart/form-data" th:object="${testBeans}"> 3<input type="file" name="image"/> 4<input type="submit"/> 5</form> 6</body>
java
1//コントローラー 2 @RequestMapping(value = "upload", method = RequestMethod.POST) 3 public String upload(TestBeans beans, @RequestParam("image") MultipartFile upfile) { 4 // ファイルを保存する 5 if (!upfile.isEmpty()) { 6 try { 7 String filename = upfile.getOriginalFilename(); 8 //リンク先直打ちでは実現できた! 9 Files.copy(upfile.getInputStream(),Paths.get("C:¥¥中略¥¥static", filename)); 10 // ファイル名をBeansに保存する 11 TestBeans test = new TestBeans(); 12 test.setImage(filename); 13 session.setAttribute("test", test); 14 15 } catch (IOException | RuntimeException e) { 16 e.printStackTrace(); 17 } 18 } 19 20 21 return "index2"; 22 }
html
1<body> 2<img th:src="${session.test.image}"/> 3</body>
回答1件
あなたの回答
tips
プレビュー