Ich habe ein Problem:
Ich möchte gerne BLOBs aus der Datenbank direkt zum Download anbieten. Hierbei soll es egal sein, ob es sich dabei um JPG, HTML, EXE oder was auch immer für Dateien handelt.
Das Auslesen klappt problemlos. Nur das Anzeigen hapert noch etwas. Vielleicht kann mir jemand nen Tipp geben. Nachfolgend der Code, der bereits funktioniert, aber leider eine falsche Datei ausgibt, die Korrupt ist...
Alles funktioneiert wunderbar, bis auf dass :
(so vermute ich zumindest) mir den Code zerhaut, sodass EXE-Dateien und verschiedenste andere Formate nicht mehr funktionieren.
Grund für die Annahme ist unteranderem folgender Ausschnitt aus (so sollte man meinen) 2 identischen jpg-Dateien.[angeschaut mit Ultraedit]
Ausserdem bekomme ich immer einen outofMemory - Error, wenn ich Dateien, mit einigen MB anzeigen lassen möchte. Das Hochladen bis 400MB in die Datenbank klappt dank einigen Einstellungen jedoch problemlos.
Ich wäre für Hilfe sehr dankbar!
Ich möchte gerne BLOBs aus der Datenbank direkt zum Download anbieten. Hierbei soll es egal sein, ob es sich dabei um JPG, HTML, EXE oder was auch immer für Dateien handelt.
Das Auslesen klappt problemlos. Nur das Anzeigen hapert noch etwas. Vielleicht kann mir jemand nen Tipp geben. Nachfolgend der Code, der bereits funktioniert, aber leider eine falsche Datei ausgibt, die Korrupt ist...
Code:
String mime = rs.getString("mimetyp");
String name = rs.getString("name");
response.setContentType(mime);
response.setHeader("Content-Disposition","attachment; filename="+name);
response.setHeader("Content-Length","attachment; filename="+rs.getString("size"));
InputStream is = rs.getBinaryStream( "content" );
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buff = new byte[8192];
int len;
while( 0 < (len = is.read( buff )) )
output.write( buff, 0, len );
out.write(output.toString());
is.close();
Alles funktioneiert wunderbar, bis auf dass :
Code:
out.write(output.toString());
Grund für die Annahme ist unteranderem folgender Ausschnitt aus (so sollte man meinen) 2 identischen jpg-Dateien.[angeschaut mit Ultraedit]
Code:
Kaputte Datei
1AQ"aq?2?¡±B#ÁRbr3ÑC$ðᢲS4ñÂÒcs£D%³ÃTt5U&Ó?EÅ?´¥
Original
1AQ"aq?2‘¡±B#ÁRbr3Ñ‚’C$ðᢲS4ñÂÒcsƒ“£D%³ÃTt5U&Ó”EÅ„´¥
Ausserdem bekomme ich immer einen outofMemory - Error, wenn ich Dateien, mit einigen MB anzeigen lassen möchte. Das Hochladen bis 400MB in die Datenbank klappt dank einigen Einstellungen jedoch problemlos.
Ich wäre für Hilfe sehr dankbar!