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

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

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

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

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

解決済

spring bootで画像のアップロードを行いたい。

hello_space
hello_space

総合スコア23

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

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

1回答

0評価

1クリップ

6476閲覧

投稿2020/09/21 07:55

編集2020/09/21 08:09

spring boot 初学者です。
自分で作ったフォルダの配下にアップロードした画像を表示させたいのですがうまくいきません。
アップロード自体はできたのですが、それをどう表示したらいいのかがわからず質問させていただきました。
理想としてはstaticの下にあるimagesファイルの下に画像をアップロードすることができれば、thymeleafのほうで読み込めたのですが、調べるとサーバー起動後に追加した画像は読み込まれないということを知り、その方法はとらないことにしました。
そのため、spring bootのプロジェクト直下にhogeという名前でフォルダを作りそこに画像をアップロードするまではできたのですが、そのあと画面のほうで画像を表示することができない状態で詰まってしまいました。

前提・実現したいこと

自分でプロジェクト直下に作ったフォルダ内にある画像を表示させたい。

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

画像が読み込まれない。

該当のソースコード

project/ ┣ src/main/resources/ │   ┣ static/ │ //この時は表示できていた。 │ ┣ images/ │ ┣ hoge.png │ // ここに自分でフォルダを追加 ┣ hoge/ // これを表示させたい ┣ fuga.png

java

<div class="container"> <div class="store_wrap col-12 col-sm-12 col-md-6 col-lg-4 my-5 text-center" th:each="store : ${stores}" th:object="${store}"> // ここでimageを表示させたい (static/images配下にイメージを配置していた時は<img th:src="@{/images/} + *{image}">で表示できていた。 <div class="store_image"><img th:src="*{image}"></div> <div class="store_text text-wrap text-break"> <h3> <a th:href="@{/main/{id}(id=*{id})}" th:text="*{name}"></a> </h3> <h3> <a th:href="@{/main/{id}(id=*{id})}" th:text="*{address}"></a> </h3> </div> </div> </div>

セキュリティ関係も色々記述変えてみたんですがあまり理解しておらずうまくいきませんでした。

websecurity

@Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/css/**","/js/**","/images/**","/fonts/**","/api/**"); }
public void uploadfile(MultipartFile upfile) { if(!upfile.isEmpty()) { try { Files.copy(upfile.getInputStream(), Paths.get("/hoge", upfile.getOriginalFilename())); } catch(RuntimeException | IOException e) { } } return;
@GetMapping("/main") String index(Model model) { List<Store> stores = storeService.findAll(); model.addAttribute("stores", stores); return "store/index"; }

試したこと

src属性を変えたりして試してみたのですがうまく表示されませんでした。

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

spring boot 1.4.0
webSecurity使用中
thymeleaf 3
java 1.8

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

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