質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

0回答

1963閲覧

Spring Boot プロジェクトでの相対パスがわからない

Bonhomme

総合スコア2

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/01/01 05:37

編集2021/01/01 05:45

##わからないこと
画面上でアップロードしたファイルをjava側で/resources/static/img/userフォルダに格納したのですが、その相対パスの仕方がわかりません。初歩的な質問になってしまうのですが、わかる方いらっしゃいましたら教えていただけますと助かります。

###エラー

java.io.FileNotFoundException: src/main/resources/static/img/user/XXX.jpg (No such file or directory)

####処理の流れ

  1. 画面でファイルが選択されたらAjaxでサーバーサイドにファイルを送る

html

1<label id="file-btn" for="userImg" class="bg-primary text-white">Choose your photo</label> 2<input type="file" name="file" id="userImg" style="display: none;"> 3<p id="selected-status" class="mt-1">[Not yet selcted]</p>

イメージ説明

  1. コントローラで渡ってきたファイルを受け取る

java

1// @Controller 2 public boolean imgRegister(@RequestParam("file") MultipartFile file) { 3 boolean bool = false; 4 try { 5 userService.saveUserImg(file); 6 bool = true; 7 } catch (Exception e) { 8 e.printStackTrace(); 9 } 10 return bool; 11 }
  1. サービスで/resources/static/img/userフォルダに画像を格納する

java

1// @userService 2public void saveUserImg(MultipartFile file) throws Exception { 3 String folder = "/Users/XXXXX/XXXXX/XXXXX/src/main/resources/static/img/user/"; //絶対パス指定では想定通りに格納できたが、相対パスではできない 4 byte[] bytes = file.getBytes(); 5 FileOutputStream output = new FileOutputStream(folder + file.getOriginalFilename()); 6 output.write(bytes); 7 output.close(); 8 Path path = Paths.get(folder + file.getOriginalFilename()); 9 Files.write(path, bytes); 10 }

#####試したこと

  • 相対パスとして、「../../../../resources/static/img/user/」を上記の絶対パスの代わりに指定

階層は以下の通りです
UserService: /src/main/java/com/example/protfolio/service/UserService.java

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問