Popeye1979 Geschrieben 26. Januar 2004 Geschrieben 26. Januar 2004 Hi! Folgendes Problem: Ich biete eine Datei zum Download an. Wenn ich nun auf den Link klicke öffnet mir der Browser das Fenster "Downloaden einer Datei von diesem Ort: FileDownloadServlet?index=0 von Localhost Wie möchten Sie verfahren....Öffnen....Speichern" Wie bekomme ich nun den Dateinamen dort anstatt diesem FileDownloadServlet hin?? Das FileDownloadServlet schickt die Datei an den Response. public class FileDownloadServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(); InhaltForm inf = (InhaltForm) session.getAttribute("inhaltForm"); int index = Integer.parseInt(req.getParameter("index")); String dateiname = null; byte[] datei = null; DTOAnhang anhang = (DTOAnhang) inf.getAttachments().get(index); dateiname = anhang.getDateiname(); datei = anhang.getDatei(); res.setContentType("application/octet-stream"); res.setHeader( "Content-Disposition", "attachment; filename=\"" + anhang.getDateiname() + ""); try { ServletOutputStream out = res.getOutputStream(); int bytesRead; out.write(datei); } catch (IOException e) { e.printStackTrace(); } } } Wenn ich dann auf Speichern klicke wird mir der Dateiname ja angezeigt, nur muss es doch irgendwie möglich sein diesen auch schon auf dem ersten Dialog anzuzeigen oder??
Jaraz Geschrieben 26. Januar 2004 Geschrieben 26. Januar 2004 Hi, ich realisiere das über einen Filter. die url sieht zum Beispiel so aus: http://www.xyz.de/download/6294/folien.zip Alles was an http://www.xyz.de/download/* geht, fängt der Filter ab, holt sich die id aus der URL und der Dateiname ist so wie angezeigt. Den Filter bindest du so in der web.xml ein: <web-app> <filter> <filter-name>DownloadFilter</filter-name> <filter-class>de.xyz.doz.filter.DownloadFilter</filter-class> </filter> <filter-mapping> <filter-name>DownloadFilter</filter-name> <url-pattern>/download/*</url-pattern> </filter-mapping> . . . </web-app> Gruß Jaraz
Popeye1979 Geschrieben 26. Januar 2004 Autor Geschrieben 26. Januar 2004 Ich hab da jetzt aber in der URL keinen Dateinamen drin stehen! .../FileDownloadServlet?index=0 Gibt es da nicht die Möglichkeit den Dateinamen irgendwie in den response zu schreiben? Der is ja dann beim Speichern auch vorhanden! res.setHeader( "Content-Disposition", "attachment; filename=\"" + anhang.getDateiname() + "");
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden