我正在尝试编写一个允许将图像上传到 PostgreSQL 数据库的 JSP Web 应用程序。我按照这个作为指导,但是图像没有上传到数据库并且方法(下面)进入了捕获。
到目前为止,这是我的代码:
public boolean upIm() {
try {
File file = new File("bg.jpg");
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps = con.prepareStatement("INSERT INTO images VALUES (?, ?)");
ps.setString(1, "background");
ps.setBinaryStream(2, fis, (int) file.length());
ps.executeUpdate();
ps.close();
fis.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
FileInputStream 似乎有问题,因为进入 db 的语句是 INSERT INTO images VALUES ('background', ?)
,并且我已经测试了 file.length() 并且它工作正常。
就是这样; 如果您需要更多信息或更多代码,请告诉我。
编辑:我得到这个堆栈跟踪:
org.postgresql.util.PSQLException: ERROR: relation "images" does not exist
Position: 13
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:363)
at bd.provaImg.upIm(provaImg.java:50)
at bd.prova2.main(prova2.java:14)
我认为位置 13 是类中的行(此处未显示),它只是实例化了包含此方法的类。