Как я могу прочитать один файл изображения с JSP на страницу JSP? - PullRequest
0 голосов
/ 22 октября 2018

Я использовал код, показанный ниже в файле JSP, для получения входных файлов в формате png, jpeg и jpg.

Citizenship: <input type="file" name="citizen" value="Citizenship" accept="image/png, image/jpeg, image/jpg" required >
Degree:  <input type="file" name="degree" value="Degree" accept="image/png, image/jpeg, image/jpg" required>

Я отправил эти файлы на следующую страницу jsp с помощью тега формы.Код, написанный для него:

<form method="POST" action="continue_AdmissionProcessing_Record.jsp">

На странице "continue_AdmissionProcessing_Record.jsp" я попытался прочитать файлы в формате png, jpeg и jpg со следующим кодом:

 <%BufferedImage citizen=ImageIO.read(new File(request.getParameter("citizen")));%>
        <%BufferedImage degree=ImageIO.read(new File(request.getParameter("degree")));%>

Iвызвал метод в Java, используя следующий код для сохранения вышеуказанных данных в базе данных:

<%String available=UpdataStudentInfo.useValues(citizen, degree);%>

В Java, я использовал следующий код для преобразования изображения в поток:

 ByteArrayOutputStream os1 = new ByteArrayOutputStream();
    ImageIO.write(citizen, "jpg", os1);
    InputStream citizen_is = new ByteArrayInputStream(os1.toByteArray());

    ByteArrayOutputStream os2 = new ByteArrayOutputStream();
    ImageIO.write(degree, "jpg", os2);
    InputStream degree_is = new ByteArrayInputStream(os2.toByteArray());

После этогоЯ использовал следующий код для сохранения этих данных в базе данных:

try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();   
      try{
                     Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/crm","root","");
                     PreparedStatement stmt=con.prepareStatement("UPDATE student SET citizenship=?, degree=? WHERE sn=? ");
                     stmt.setBinaryStream(1, citizen_is);
                     stmt.setBinaryStream(2, degree_is);
                     stmt.executeUpdate();
                     con.close();
      }catch(Exception e){
          System.out.println("caught an exception"+e);
    }

Но это привело к следующей ошибке на странице "continue_AdmissionProcessing_Record.jsp":

  Type Exception Report

    Message javax.imageio.IIOException: Can't read input file!

    Description The server encountered an unexpected condition that prevented it from fulfilling the request.

    Exception

    java.io.IOException: javax.imageio.IIOException: Can't read input file!
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:485)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    Root Cause

    javax.imageio.IIOException: Can't read input file!
        javax.imageio.ImageIO.read(Unknown Source)
        org.apache.jsp.continue_005fAdmissionProcessing_005fRecord_jsp._jspService(continue_005fAdmissionProcessing_005fRecord_jsp.java:169)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    Note The full stack trace of the root cause is available in the server logs.

Пожалуйста, помогите мнерешить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...