Zum Inhalt springen

Dateinamen beim FileDownloadServlet


Empfohlene Beiträge

Geschrieben

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??

Geschrieben

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

Geschrieben

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() + "");

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...