F
FlorianK
Gast
Hallo,
ich versuche einen BLOB aus meiner Datenbank auszugeben.
Ich habe in meiner Datenbank eine Binär-Datei + den Dateinamen.
Auf einer JSP Seite habe ich einen Formular Button, mit dem man die Datei runterladen soll.
Das Formular verweist auf mein Servlet.
Im Servlet wird der BLOB wieder zu einer Datei und über RESPONSE zurückgegeben.
Grob funktioniert es auch, jedoch ist die "neue" Datei (die, die ich vom Servlet bekomme) kleiner als die orginal Datei.
Bzw, bei *.doc Dateien bekomme ich nur noch kryptische Zeichen angezeigt.
An was kann das liegen ?
Java: SDK 1.4.2
DB: HSQLDB
Tool: Eclipse 3.1.2
ich versuche einen BLOB aus meiner Datenbank auszugeben.
Ich habe in meiner Datenbank eine Binär-Datei + den Dateinamen.
Auf einer JSP Seite habe ich einen Formular Button, mit dem man die Datei runterladen soll.
Das Formular verweist auf mein Servlet.
Im Servlet wird der BLOB wieder zu einer Datei und über RESPONSE zurückgegeben.
Grob funktioniert es auch, jedoch ist die "neue" Datei (die, die ich vom Servlet bekomme) kleiner als die orginal Datei.
Bzw, bei *.doc Dateien bekomme ich nur noch kryptische Zeichen angezeigt.
An was kann das liegen ?
Code:
[SELECT-STATEMENT]
response.setHeader("Content-Type","application/octet-stream");
response.setHeader("Content-Disposition","filename="+ filename);
while(rs.next()) {
InputStream input = rs.getBinaryStream("file");
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] rb = new byte[8091];
int ch = 0;
try {
while ((ch = input.read(rb)) != -1) {
output.write(rb, 0, ch);
}
input.close();
output.close();
} catch (IOException ioe) {
System.out.println("IO ERROR : "+ e);
}
}
Java: SDK 1.4.2
DB: HSQLDB
Tool: Eclipse 3.1.2