Java-webapp: hinzufügen eines content-disposition-header zu erzwingen Browser "speichern als" - Verhalten

Obwohl es nicht Teil der HTTP 1.1/RFC2616 webapps, die wollen, zu zwingen, eine Ressource zu werden heruntergeladen (statt angezeigt) in einem browser verwenden können, die Content-Disposition header wie dieser:

Content-Disposition: attachment; filename=FILENAME

Obwohl es nur definiert in RFC2183 und nicht Teil der HTTP 1.1-es funktioniert in den meisten web-Browsern wie gewünscht.

Also von der client-Seite, alles ist gut genug.

Jedoch auf der server-Seite, in meinem Fall, ich habe eine Java-webapp und ich weiß nicht, wie soll ich das einstellen, dass header, vor allem in dem folgenden Fall...

Werde ich eine Datei (z.B. namens "bigfile"), gehostet auf einem Amazon S3-Instanz (meine S3-bucket zugreifen, durch Verwendung eines partiellen Adresse wie: files.mycompany.com/), damit die Benutzer werden in der Lage sein Zugriff auf diese Datei an files.mycompany.com/bigfile.

Nun gibt es eine Möglichkeit, das Handwerk eine servlet (oder ein .jsp), so dass die Content-Disposition header wird immer Hinzugefügt, wenn der Benutzer herunterladen möchte, die Datei?

Was würde der code so Aussehen und was sind die Fallstricke, wenn überhaupt?

also, wenn die Datei heruntergeladen aus dem s3 und http-request gemacht werden, um den s3-server, dann s3 muss hinzufügen, dass diese header, nicht Ihre Anwendung, ist es nicht?
gesehen, Ihren Kommentar, ich Schätze so... Aber herauszufinden, dass heraus, ist irgendwie genau der springende Punkt bei meiner Frage 🙂 Wenn Sie eine Antwort detaliling diese ein klein wenig mehr ich werde upvote und akzeptieren 🙂
gesehen, Ihr Kommentar, ich gegoogelt auf S3 und gefunden, dass anscheinend auf vielfachen Wunsch können Sie "Upload mit custom Header" (Dateien, um Ihre Eimer), das wäre eine tolle Lösung für mein Problem!
In der Tat, es sieht aus wie das Amazon-management-Benutzeroberfläche können Sie einrichten-Kopfzeilen direkt, ob das funktioniert für Sie. Vielen Dank für diese Frage!!
Ich suchte herum, aber ich kann nicht finden, alle Verweise S3 unterstützt JSP/Servlet. Warum hast du es mit einem tag versehen? Das einzige, JSP/Servlet-Lösung würde sein, zu spielen für einen proxy auf Ihrem eigenen host und setzen Sie das content-disposition-header programmatisch, sondern, dass der Hauptzweck der S3 (CDN, so dass Sie sparen können verbindungen/Anfragen auf Ihrer primären domain) völlig sinnlos, man könnte dann als gut, nur host-it-yourself.

InformationsquelleAutor SyntaxT3rr0r | 2010-03-08

Schreibe einen Kommentar