Hallo zusammen.
Ich hab ein kleines Problem. Ich nutze SQL-Server und will über Java ein PDF in die Datenbank ablegen und wieder abspeichern. Das klappt auch, nur beim auslesen sagt mir dann der PDF-Reader, dass die Datei korrupt ist.
Auf dem SQL-Server habe ich den Datentyp als varbinary(MAX) angegeben.
Speichern tu ich das PDF so:
Und Auslesen mache ich so:
Er schreibt dann auch die PDF-Datei, diese ist dann aber fehlerhaft. Was mache ich da falsch?
Vielen Dank
Ich hab ein kleines Problem. Ich nutze SQL-Server und will über Java ein PDF in die Datenbank ablegen und wieder abspeichern. Das klappt auch, nur beim auslesen sagt mir dann der PDF-Reader, dass die Datei korrupt ist.
Auf dem SQL-Server habe ich den Datentyp als varbinary(MAX) angegeben.
Speichern tu ich das PDF so:
Java:
PreparedStatement pst = con.prepareStatement("Update Table set Datei=? where id=" + id);
pst.setBinaryStream(1, new FileInputStream(file), (int) file.length());
pst.executeUpdate();
pst.close();
Und Auslesen mache ich so:
Java:
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select Datei from Table where id=" + id);
if (rs.next())
{
File file = new File("test.pdf");
InputStream is = rs.getBinaryStream(1);
FileOutputStream fos = new FileOutputStream(file);
byte[] buff = new byte[8192];
int len;
while (0 < (len = is.read(buff)))
{
fos.write(buff, 0, len);
}
fos.close();
is.close();
Desktop.getDesktop().open(file);
}
Er schreibt dann auch die PDF-Datei, diese ist dann aber fehlerhaft. Was mache ich da falsch?
Vielen Dank