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?? Zitieren
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 Zitieren
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() + ""); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.