JSPでファイルを
html
1<input type="file" name="file1" size="75">
このように指定して、サーブレット側でそのファイルを受け取って、
base64形式に変換したいです。
現状は画像の絶対パスは取得できていて、
その画像のファイル名は取得できております。
その後にFileInputStreamでファイルをバイト配列にしたいのですが、
FileNotFoundExceptionになってしまいます。
java
1File file = new File(filePath);
を
java
1FileInputStream fileInputStream = new FileInputStream(file);
としていおります。
filePathは下記のような値になっております。
/ワークスペース/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/プロジェクト名/格納するパス名/ファイル名
jspでsubmitした時のスタックトレースを記載いたします。
java.io.FileNotFoundException: 上記のパス (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 以下省略
また、サーブレット側のソースコードを記載いたします。
java
1String path = getServletContext().getRealPath("files"); 2DiskFileItemFactory factory = new DiskFileItemFactory(); 3ServletFileUpload upload = new ServletFileUpload(factory); 4factory.setSizeThreshold(1024); 5upload.setSizeMax(4000 * 1024); 6upload.setFileSizeMax(3000 * 1024); 7upload.setHeaderEncoding("UTF-8"); 8try { 9 List list = upload.parseRequest(request); 10 Iterator iterator = list.iterator(); 11 while (iterator.hasNext()) { 12 FileItem fItem = (FileItem) iterator.next(); 13 if (!(fItem.isFormField())) { 14 fileName = fItem.getName(); 15 long size = fItem.getSize(); 16 17 if ((fileName != null) && (!fileName.equals(""))) { 18 String fileName2 = (new File(fileName)).getName(); 19 filePath = path + "/" + fileName; 20 21 File file = new File(filePath); 22 FileInputStream fileInputStream = new FileInputStream(file); //エラー 23 24 in.close(); 25 } 26 } 27 } 28...
皆様のお力添えのほど、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー