Я использовал код, показанный ниже в файле 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.
Пожалуйста, помогите мнерешить это.