From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: import_bytea function |
Date: | 2016-10-07 08:18:03 |
Message-ID: | nt7lnp$l9m$1@blaine.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Stephen Davies schrieb am 07.10.2016 um 09:12:
> I am trying to use the import_bytea function described in various list posts (PG version 9.3.14) in a jsp.
>
> I get an error saying that only the super user can use server-side lo_import().
>
> If I change the Java connection to use user postgres, the function works but I would prefer not to do this.
>
> Is there a better way to update a bytea column from an uploaded file (in this case a small jpeg)?
Since you mention JSP, I assume you are using JDBC.
You can store the contents of a file in a bytea using plain JDBC no lo_import() required
String sql = "insert into images (id, image_data) values (?,?)";
Connection con = ....;
File uploaded = new File("...");
InputStream in = new FileInputStream(uploaded);
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, 42);
pstmt.setBinaryStream(in, (int)uploaded.length());
pstmt.executeUpdate();
This *only* works with bytea column, not with "large objects".
In production code you obviously need to close all resources and handle errors.
I left that out for simplicity.
Thomas
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Davies | 2016-10-07 08:46:13 | Re: import_bytea function |
Previous Message | Stephen Davies | 2016-10-07 07:12:06 | import_bytea function |