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

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

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

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

解決済

Java EE sql 画像アップロード

userY
userY

総合スコア41

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

1回答

0評価

1クリップ

220閲覧

投稿2022/05/10 07:08

編集2022/06/05 16:33

勉強中の者です。画像取得方法を調べています。

やりたいこと
jspで画像を登録しdbに保存したい

状況
・画像を登録しDBに保存しようとすると、例外が発生し、エラーメッセージは「画像取得失敗」のみ表示される。
・PCはエクリプス、psqlのフルディスアクセス設定済み。

間違えをご指摘いただけるとありがたいです。よろしくお願いします。


補足
・変数がnullとなるため、
jsp のenctype="multipart/form-data"を削除してみたところ
以下のスタックトレースのエラー内容となりました。

・画像ファイルをプロジェクトのWebContent直下に置いても、同じ結果となりました。


環境
mac m1
Eclipse JavaEE
javaSE-17
tomcat
psql

addGoods.jsp

-------- <form action="/food/AddGoodsServlet" method="post" enctype="multipart/form-data"> <input type="file" name="goods_img" > <input type="submit"value="登録"> </form> --------

AddGoodsServlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int goods_id=0; String goods_img=request.getParameter("goods_img"); GoodsDao dao = new GoodsDao(); dao.insert(goods_img); RequestDispatcher dispatcher=request.getRequestDispatcher("WEB-INF/jsp/addGoods.jsp"); dispatcher.forward(request, response); }

GoodsDao

public void insert(String goods_img) throws FileNotFoundException{ Connection conn=null; PreparedStatement st=null; try { Class.forName("org.postgresql.Driver"); }catch(Exception e) { e.printStackTrace(); } try { conn=DriverManager.getConnection(JDBC_URL,DB_USER,DB_PASS); File file =new File(goods_img); FileInputStream fis = new FileInputStream(file); String sql="INSERT INTO goods (goods_img)values(?)"; st=conn.prepareStatement(sql); st.setBinaryStream(1,fis,file.length()); int result=st.executeUpdate(); if(fis!=null) { fis.close(); } }catch(Exception e) { System.out.println("画像取得失敗"); }finally { ----------

psql

create table goods( goods_id serial not null primary key, goods_img bytea );

stacktrace

java.io.FileNotFoundException: elephant-chobe-botswana.jpg (No such file or directory) 画像取り込みエラー at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:216) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) at dao.GoodsDao.insert(GoodsDao.java:40) at servlet.AddGoodsServlet.doPost(AddGoodsServlet.java:50) at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833)

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

javahack

2022/05/10 09:59

"画像取得失敗"なんて出さずにスタックトレースを出力すればエラーの原因が書かれています。
userY

2022/05/10 11:55

ありがとうございます。 スタックトレース表示させたところ、 java.io.FileNotFoundException: elephant-chobe-botswana.jpg (No such file or directory) GoodsDaoの FileInputStreaqm fis=new FileInputStream(file); Servletの dao.insert(goods_img); を指しています。 daoで出力確認したところ、変数goods_imgの中にファイル名が確認できました。 パスの問題でしょうか。 ブラウザはChromeを使用しておりますが、エクリプス内部ブラウザのIEでも結果は同じになりました。
userY

2022/06/05 07:32

質問内容が変わりましたので、改めて質問させていただきます。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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