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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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