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

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

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

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

Java

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

Q&A

解決済

1回答

563閲覧

Java EE sql 画像アップロード

userY

総合スコア44

Java EE

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

Java

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

0グッド

1クリップ

投稿2022/05/10 07:08

編集2022/05/12 10:56

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

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

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

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


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

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


環境
mac m1
Eclipse JavaEE
javaSE-17
tomcat
psql

addGoods.jsp

1-------- 2<form action="/food/AddGoodsServlet" method="post" enctype="multipart/form-data"> 3 <input type="file" name="goods_img" > 4 5 <input type="submit"value="登録"> 6 </form> 7--------

AddGoodsServlet

1protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 3 int goods_id=0; 4 String goods_img=request.getParameter("goods_img"); 5 6 GoodsDao dao = new GoodsDao(); 7 dao.insert(goods_img); 8 9 RequestDispatcher dispatcher=request.getRequestDispatcher("WEB-INF/jsp/addGoods.jsp"); 10 dispatcher.forward(request, response); 11 }

GoodsDao

1public void insert(String goods_img) throws FileNotFoundException{ 2 3 Connection conn=null; 4 PreparedStatement st=null; 5 try { 6 Class.forName("org.postgresql.Driver"); 7 }catch(Exception e) { 8 e.printStackTrace(); 9 } 10 try { 11 conn=DriverManager.getConnection(JDBC_URL,DB_USER,DB_PASS); 12 13 File file =new File(goods_img); 14 FileInputStream fis = new FileInputStream(file); 15 16 String sql="INSERT INTO goods (goods_img)values(?)"; 17 st=conn.prepareStatement(sql); 18 st.setBinaryStream(1,fis,file.length()); 19 int result=st.executeUpdate(); 20 if(fis!=null) { 21 fis.close(); 22 } 23 }catch(Exception e) { 24 System.out.println("画像取得失敗"); 25 }finally { 26---------- 27

psql

1create table goods( 2goods_id serial not null primary key, 3 goods_img bytea 4);

stacktrace

1java.io.FileNotFoundException: elephant-chobe-botswana.jpg (No such file or directory) 2画像取り込みエラー 3 at java.base/java.io.FileInputStream.open0(Native Method) 4 at java.base/java.io.FileInputStream.open(FileInputStream.java:216) 5 at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) 6 at dao.GoodsDao.insert(GoodsDao.java:40) 7 at servlet.AddGoodsServlet.doPost(AddGoodsServlet.java:50) 8 at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) 9 at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) 10 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) 11 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) 12 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 13 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) 14 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) 15 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) 16 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) 17 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) 18 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) 19 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 20 at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) 21 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) 22 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) 23 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) 24 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) 25 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) 26 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) 27 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 28 at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) 29 at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) 30 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 31 at java.base/java.lang.Thread.run(Thread.java:833)

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

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

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

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

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

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

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

回答1

0

自己解決

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

投稿2022/06/05 07:33

userY

総合スコア44

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問