0

動的 Web プロジェクトを作成し、次のコードを使用して画像をアップロードし、同じ場所から取得しています。外部ブラウザーでアプリケーションを実行しようとすると、画像ではなく長方形のボックスが表示されます。外部 Web ブラウザーに読み込まれると、エラー。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.sql.*;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.*;

public class UploadImage extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        System.out.println("request: " + request);
        if (!isMultipart) {
            System.out.println("File Not Uploaded");
        } else {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List items = null;

    try 
    {
          items = upload.parseRequest(request);
          System.out.println("items: " + items);
    } 
   catch (FileUploadException e) 
   {
    e.printStackTrace();
   }
        Iterator itr = items.iterator();
        while (itr.hasNext()) {
        FileItem item = (FileItem) itr.next();
        if (item.isFormField())
            {
              String name = item.getFieldName();
              System.out.println("name: " + name);
              String value = item.getString();
              System.out.println("value: " + value);
        }
           else
           {
            try 
                 {
             String itemName = item.getName();
             Random generator = new Random();
             int r = Math.abs(generator.nextInt());
                 String reg = "[.*]";
             String replacingtext = "";
             System.out.println("Text before replacing is:-"+ itemName);
             Pattern pattern = Pattern.compile(reg);
             Matcher matcher = pattern.matcher(itemName);
             StringBuffer buffer = new StringBuffer();
                 while (matcher.find())
                 {
             matcher.appendReplacement(buffer, replacingtext);
             }
             int IndexOf = itemName.indexOf(".");
             String domainName = itemName.substring(IndexOf);
             System.out.println("domainName: " + domainName);
                 String finalimage = buffer.toString() + "_" + r+ domainName;
             System.out.println("Final Image===" + finalimage);
        File savedFile = new File("D:\\test1\\" + "images\\"+ finalimage);
             item.write(savedFile);
        out.println("<html>");
        out.println("<body>");
            out.println("<table><tr><td>");
            out.println("<img src=D:\\test1\\images\\" + finalimage+ ">");
        out.println("</td></tr></table>");
            Connection conn = null;
            String url = "jdbc:oracle:thin:@//localhost:1521/erp";
            String username = "system";
            String userPassword = "manager";
        String strQuery = null;
        try 
            {
        System.out.println("itemName::::: " + itemName);
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection(url, username,userPassword);
        Statement st = conn.createStatement();
        strQuery = "insert into testimage values('"+ finalimage + "')";
            int rs = st.executeUpdate(strQuery);
        System.out.println("Query Executed Successfully++++++++++++++");
            out.println("image inserted successfully");
        out.println("</body>");
            out.println("</html>");
        }
            catch (Exception e)
            {
        System.out.println(e.getMessage());
        } 
            finally
            {
        conn.close();
        }
        } 
           catch (Exception e)
           {
        e.printStackTrace();
            }
                }
            }
        }
    }
}
4

1 に答える 1