Ich schicke per HttpServlet eine Datei an den Browser. Diese kommt auch korrekt im Browser an, allerdings macht dieser (IE8) immer direkt das Downloadfenster auf statt die Datei im Browser darzustellen obwohl er das könnte.
Was muss ich tun damit der Browser die Datei direkt anzeigt und das Downloadfenster nur öffnet wenn er sie nicht anzeigen kann? Ich dachte Eigentlich das das nur über den MIME Type bestimmt wird, dem scheint aber nicht so zu sein
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
//Datei auslesen
//...
String ext = filename.substring(filename.lastIndexOf('.')+1);
if (ext.contentEquals("bmp"))
resp.setContentType("image/bmp");
else if (ext.contentEquals("jpg"))
resp.setContentType("image/jpeg");
else if (ext.contentEquals("png"))
resp.setContentType("image/png");
else if (ext.contentEquals("doc"))
resp.setContentType("application/msword");
else if (ext.contentEquals("pdf"))
resp.setContentType("application/pdf");
resp.setHeader("Content-Disposition", "attachment;filename=\"" +
filename + "\"");
resp.setContentLength(result.getRawData().length);
resp.getOutputStream().write(result.getRawData());
}
[/PHP]
PS: falls jemand eine vernünftige Möglichkeit kennt den Mime Type anhand der Dateiendung zu bestimmen wäre ich auch dankbar. Oben das ist erstmal nur ne Notlösung (hoffentlich)
PPS: Ich hab auch schon die Content-Disposition auf inline gestellt. Allerdings stellt der Browser den Dateiinhalt immer dar auch wenn er nichts damit anfangen kann. Das heißt bei einer Excel Datei zum Beispiel wird einfach wilder Text angezeigt...