Sven Rautenberg: Download erzwingen?

Beitrag lesen

Moin!

das Problem ist allseits bekannt. bei Klick auf einen HREf eines *.doc, *.pdf etc. -Dokuments, öffnet sich bei entsprechendem Plug-In die dazugehörige Anwendung. Ich will Dateien aber explizit zum Download anbieten - und ohne dem Hinweis "Rechter Mausklick...".

Es würde dir sicherlich helfen, wenn du verstehst, was auf dem Server, zwischen Server und Client und beim Client geschieht, wenn eine Ressource abgefordert wird.

Je nach Konfiguration nimmt der Server auch die Dateiendung als Hinweis, welche Art von Ressource vorliegt und welcher Mime-Typ dazugehört.

Jener Mime-Typ wird zusammen mit den Daten übermittelt.

Der Browser entscheidet anhand des Mime-Typs, welche Art von Daten vorliegen, und wie diese zu behandeln sind. Ausnahme: Der IE entscheidet bei den (angeblich - was aber nicht stimmt!) unspezifischen Mime-Typen "text/plain" und "application/octet-stream" anhand einiger Tests des Dateiinhalts, welcher Dateityp vorliegt (Link dazu sollte mit Suchwort "x-msdownload" im Archiv auffindbar sein).

Logischerweise ergibt sich aus vorstehender Schilderung: Wenn du das Verhalten des Clients beeinflussen willst, beeinflusse den Mime-Typ.

Es gibt die Möglichkeit, einen anderen Dateityp anzugeben.
... href="dummy.pdf" type="application/octet-stream"...

Schwachsinnsangabe, die niemals funktionieren wird. Entscheidend ist, was der Server sagt, nichts anderes!

Fragen:

  1. Kann man mit JavaScript das Öffnen des "Speichern unter..."-Dialogs erzwingen (so wie print() das Drucken-Dialogfenster aufruft)?

Erzwingen läßt sich nichts.

  1. Wenn nein, gibt es andere Möglichkeit (ich arbeite mit JSP)?

Siehe oben: Mime-Typ ändern (wahlweise zentral serverweit statisch oder auch je Dokument skriptgesteuert dynamisch - ganz nach Wunsch).

- Sven Rautenberg