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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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

Q&A

解決済

2回答

3905閲覧

SpringBootで作成したjarファイルから外部フォルダに画像ファイルをアップロードしたい

takahiro00

総合スコア84

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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

0グッド

0クリップ

投稿2020/02/08 14:52

前提・実現したいこと

SpringBootで作成したjarを実行して、外部フォルダに画像ファイルをアップロードしたいのですが、
うまくいかず、、、
ご教授いただければと思います。

以下がサーバ内(jarを入れてるディレクトリ)です。
イメージ説明
「hello-0.0.1-SNAPSHOT.jar」が今回対象のjarになります。

以下のディレクトリに画像をアップロードしたいです。
static/emp-icon/0.jpg

⬛︎以下の方法でパスは通しています。
export LOADER_PATH=[/static/]

発生している問題・エラーメッセージ

java.nio.file.NoSuchFileException: /emp-icon/0.jpg

該当のソースコード

必要なところだけ抜粋してます。

java

1 @RequestMapping(value = "test-upload" ,method = RequestMethod.POST) 2 public ModelAndView upload(@RequestParam("upload")MultipartFile upfile, ModelAndView mav) throws IOException { 3 String fileNameId = "0.jpg"; 4 //画像をアップロード 5 Files.copy(upfile.getInputStream(),Paths.get("/emp-icon/", fileNameId)); 6 return mav; 7 }

試したこと

Resource resource = resourceLoader.getResource("file:" + filePath);
上記のようにしてファイルパスを取得するようにもしたのですが、
それでも変わらず、、、

補足情報(FW/ツールのバージョンなど)

サーバー:CentOS
FW:SpringBoot 2.0
ビルド:Gradle

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

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

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

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

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

guest

回答2

0

外部フォルダは基本絶対パスを使用します。

Paths.get("/emp-icon/0.jpg")

と読み込んだ場合は

${PROJECT_DIR}/static/emp-icon/0.jpg ではなく /static/emp-icon/0.jpg となります。

まあ、一般的なのはSpringboot なので新規プロパティを作成します。

@Value("${app.fileuploadpath}") String fileuploadpath; @RequestMapping(value = "test-upload" ,method = RequestMethod.POST) public ModelAndView upload(@RequestParam("upload")MultipartFile upfile, ModelAndView mav) throws IOException { String fileNameId = "0.jpg"; //画像をアップロード Files.copy(upfile.getInputStream(),Paths.get(fileuploadpath, fileNameId)); return mav; }

投稿2020/02/08 22:57

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

takahiro00

2020/02/10 12:00

ご回答ありがとうございます。 /static/emp-icon/0.jpg ↑のパスにしてもダメでした。。。。 迷宮入りかもしれません。。。
takahiro00

2020/02/10 12:33

@Value("${app.fileuploadpath}") String fileuploadpath; プロパティファイルを作成するってことですかね???????????
takahiro00

2020/02/13 10:39

ダメだ迷宮入りですね・・・・ 外部フォルダへのアップロードは不可能・・・
rubytomato

2020/02/13 13:04

> /static/emp-icon/0.jpg > ↑のパスにしてもダメでした。。。 上記のパスは相対パスではないでしょうか? jarファイルのあるディレクトリでpwdコマンドでディレクトリの位置を確認してください。(つまり/staticが/直下にあるのかどうか) それとも、実現したいのはjarファイルが置いてあるディレクトリから、相対パスとして "/static/emp-icon/0.jpg" に出力したいということでしょうか?
guest

0

自己解決

フルパスで書いたらできました。
ご回答頂いた方ありがとうございました。

java

1//画像をアップロード 2Files.copy(upfile.getInputStream(),Paths.get("/home/clear/static/emp-icon", fileNameId));

投稿2020/02/13 12:50

takahiro00

総合スコア84

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問