1
我想獲取客戶端上傳的圖像文件,並讓他們將其存儲在遠程服務器中。代碼全部設置良好,並且可以在硬編碼文件路徑時將圖像保存爲Blob。保存Html圖像輸入爲一個java文件
但是,如何將HTML文件(圖像)作爲文件輸入?我保存字符串值如下工作,但什麼是我想要保存圖像作爲文件在Java中的等價物?
我嘗試了以下的地方我已評論但它返回錯誤,如下所示。
類型不匹配:不能從字符串轉換成文件
<!-- 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)
可能的重複[如何將字符串保存到使用Java的文本文件?](http://stackoverflow.com/questions/1053467/how-do-i-save-a-string-toa-a- text-file-using-java) –
@Elogent這是如何重複的?我遇到了保存圖像的問題。 – kar
您在您的問題中表示您正在嘗試保存「HTML文件」。 HTML是文本。此外,你說你已經*有一個字符串,所以剩下的唯一步驟就是將該字符串保存到一個文本文件中。 –