Ich möchte ein einfaches Java-Servlet schreiben, das Datei-Upload von einer einfachen HTML-Seite empfängt, tut etwas mit der Datei und sendet die manipulierte Datei an den Benutzer zurück.Datei Upload und Download mit Servlet
Das Dateiupload-Ereignis wird von der doPost-Methode eines Servlets auf der Serverseite behandelt. Die Anforderung ist, dass das Fenster "Speichern unter ..." sofort nach dem Hochladen und Verarbeiten der Datei auf der Serverseite angezeigt werden muss und der Benutzer die generierte Datei auf seinem Computer speichern kann.
Datei-Upload wird von doPost behandelt und Datei-Download wird von der Methode doGet eines Servlets behandelt. Ist es möglich, diese beiden Ereignisse irgendwie miteinander zu verbinden?
Kann ich Byte-Inhalt als Antwort auf ein Dateiupload-Ereignis empfangen? Ich lade Datei mit Ajax-Post und ich kann Inhalt an den Browser zurücksenden, und ich kann diese Nachricht auf der Clientseite anzeigen.
Ist es möglich, einen cleveren Java-Skriptcode zu schreiben, der binäre Inhalte als Antwort einer Postanforderung empfängt und den Webbrowser zwingt, das Fenster "Speichern unter ..." zum Speichern der empfangenen Bytes in einer Datei aufzurufen ?
könnte andere Lösung
- Datei-Upload mit Ajax
- auf der Serverseite wird der neu generierten Inhalt in eine Datei in ein temporäres Verzeichnis auf dem Server
- id oder den Pfad der Datei gespeichert wird wird als Antwort an den Client zurückgeschickt
- Client (Java-Skript) empfängt die ID der generierten Datei und führt sofort eine neue GET-Anforderung an ein Datei-Download-Servlet
- Datei herunterladen servlet empfängt die ID/den Pfad der Datei und liest sie aus dem Ordner temp und sendet i bact an den Webbrowser des Clients.
Was ist die beste Vorgehensweise für dieses Szenario?
* "Ist es möglich, diese beiden Ereignisse irgendwie miteinander zu verbinden?" * Senden Sie einfach eine Weiterleitung an die URL, die diese 'doGet()' Methode aufruft? – BalusC
Danke für den Hinweis. Ich habe window.location.href = data hinzugefügt; zwischen der Ajax-POST-Rückruf-Erfolgsmethode: Erfolg: Funktion (msg) – zappee