【发布时间】:2019-06-09 04:31:45
【问题描述】:
我正在尝试使用 JDBC 将图像上传到 oracle DB。我得到一个异常“系统找不到指定的文件”
这是代码
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.util.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<%
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Connection loaded");
Connection c=DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:xe","system","oracle123");
System.out.println("Connection created");
String ll=request.getParameter("user_file");
String id=request.getParameter("id");
File imgfile = new File(ll);//till this pint the code is running correctly
FileInputStream fin = new FileInputStream(imgfile);//working in this point...
PreparedStatement pre = c.prepareStatement("insert into PHOTOS (id,photo) values(?,?)");
pre.setString(1,id);
pre.setBinaryStream(2,fin,(int)imgfile.length());
pre.executeUpdate();
pre.close();
}catch(Exception E){out.println("the eror is "+ E);}
%>
</body>
</html>
【问题讨论】:
-
在这里打印堆栈跟踪和过去。可能您正在寻找应用程序上下文之外的文件
-
这样的代码真的不属于 JSP。
-
此外,其他 cmets,
preparedStatementclose()方法的执行应该在 finally 块中,连同 Connection 对象close()方法 -
谢谢,非常感谢您的 cmets。
标签: java oracle jdbc blob fileinputstream