Hallo,
hat jemand eine Ahnung, wie man PDFs in Java einliest und dann in Datenbank Blobs speichert ?
Die PDFs sollen auch mit richtiger Formatierung eingelsen und gespeichert werden!
Beste Grüße,
Mike90
void docSave(int id, String fn) {
try {
FileInputStream fis = new FileInputStream(new File(fn));
PreparedStatement ps = deineDbConnection.prepareStatement("UPDATE your_pdf_table set document = ? WHERE id = ?;");
ps.setBlob ( 1, fis); // blob-content
ps.setInt ( 2, id); // satz-id
System.out.println("Speichere Dokument");
if (ps.executeUpdate()==1) {
System.out.println("Dokument gespeichert.");
} else {
System.out.println("Speichern fehlgeschlagen.");
}
} catch (SQLException ex) {
Logger.getLogger(BlobDoc.class.getName()).log(Level.SEVERE, null, ex);
} catch (FileNotFoundException ex) {
Logger.getLogger(BlobDoc.class.getName()).log(Level.SEVERE, null, ex);
}
}
void docLoad(String docId, String fn) {
{
PreparedStatement ps = null;
InputStream is = null;
FileOutputStream fos = null;
ResultSet rs = null;
try {
ps = deineDbConnection.prepareStatement("SELECT document FROM your_pdf_table WHERE doc_id = ?");
ps.setString(1, docId);
rs = ps.executeQuery();
if (rs.next()) {
is = rs.getBinaryStream("document");
fos = new FileOutputStream(fn);
byte[] buff = new byte[8192];
int len=0;
while ( (len=is.read(buff)) != -1 ){
fos.write(buff,0,len);
}
fos.close();
}
rs.close();
ps.close();
} catch (IOException ex) {
Logger.getLogger(BlobDoc.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(BlobDoc.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fos.close();
is.close();
} catch (IOException ex) {
Logger.getLogger(BlobDoc.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
r.w. hat gesagt.:Java:while (0<(len=is.read(buff))){
...
Returns:
the total number of bytes read into the buffer, or -1 is there is no more data because the end of the stream has been reached.
...
in diesem Fall oder sonstigen Fehler-0-read-Endlosschleifen-Gefahren wäre mir die >0-Schleifenvariante dann aber auch lieber