我正在尝试获取客户端上传的图像文件,并让它们将其存储在远程服务器中。代码都设置得很好,并且能够在我对文件路径进行硬编码时将图像保存为Blob。
但是如何将HTML文件(图像)输入存储为文件?我将String值保存如下,但是当我想将图像保存为Java中的文件时,它是否有效?
我尝试了以下我评论的内容,但它返回如下错误。
类型不匹配:无法从String转换为File
<!-- HTML Form where the File is being uploaded -->
<form method="post" action="process.jsp">
<div class="form-group">
<input type="text" class="form-control" id="contact" name="contact">
</div>
<div class="form-group">
<input type="file" class="form-control" id="file" name="file">
</div>
<button type="submit" class="btn">Submit</button>
</form>
//process.jsp
<body>
<%
//String works.
String contact = request.getParameter("contact");
//Harcoding file path works.
File img = new File("C:\\Users\\username\\Desktop\\a.jpg");
//**ERROR** - Trying this but returns error mentioned above.
//File img= request.getParameter("file");
PreparedStatement stmt;
FileInputStream fis;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://1.1.1.1:3306/something",
"username", "password");
stmt = conn.prepareStatement(
"INSERT INTO table(contact, image) values (?, ?)");
stmt.setString(1, contact);
fis = new FileInputStream(img);
stmt.setBinaryStream(2, fis, (int)(img.length()));
stmt.executeUpdate();
}
catch (Exception e) {
e.printStackTrace();
}
%>
</body>
//Full Error message:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 24 in the jsp file: /process.jsp
Type mismatch: cannot convert from String to File
21: String contact= request.getParameter("contact");
22: //File img = new File("C:\\Users\\username\\Desktop\\a.jpg");
23:
24: File img = request.getParameter("file");
25:
26: PreparedStatement stmt;
27: FileInputStream fis;
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:485)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)