Hallo,
ich habe ein Servlet geschrieben, um PDF-Dateien vom Server zum Client herunterzuladen. Für kleine pdf-Dateien funktioniert das auch problemlos, sobald ich aber versuche, eine pdf-Datei größer als etwa 100KB zu übertragen (108KB um genau zu sein), ist die Datei auf der Serverseite zwar korrekt, auf der Clientseite kommen aber nur 104KB an -- die letzten Bytes fehlen...
(Das passiert sowohl in IE7 und IE8, als auch in Firefox 3.6). Hat irgendjemand 'ne Idee, woran das liegen könnte?
Danke!
Grüße,
Philipp
P.s. Hier mein Code (Servlet):
ich habe ein Servlet geschrieben, um PDF-Dateien vom Server zum Client herunterzuladen. Für kleine pdf-Dateien funktioniert das auch problemlos, sobald ich aber versuche, eine pdf-Datei größer als etwa 100KB zu übertragen (108KB um genau zu sein), ist die Datei auf der Serverseite zwar korrekt, auf der Clientseite kommen aber nur 104KB an -- die letzten Bytes fehlen...
(Das passiert sowohl in IE7 und IE8, als auch in Firefox 3.6). Hat irgendjemand 'ne Idee, woran das liegen könnte?
Danke!
Grüße,
Philipp
P.s. Hier mein Code (Servlet):
Java:
String fileName = request.getParameter("fileName");
String viewName = request.getParameter("viewName");
if (fileName != null) {
// The fileName should be decoded already, but just in case:
fileName = URLDecoder.decode(fileName, "UTF-8");
File f = new File(fileName);
int contentLength = (int) f.length();
response.reset();
response.setBufferSize(10240);
response.setContentLength(contentLength);
response.setHeader("Content-disposition", "attachment; filename=" + viewName);
response.setContentType("application/pdf");
response.setHeader("Pragma", "private");
BufferedInputStream input = new BufferedInputStream(new FileInputStream(f), 10240);
BufferedOutputStream output = new BufferedOutputStream(response.getOutputStream(), 10240);
byte[] buffer = new byte[10240];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
output.flush();
output.close();
input.close();
}