Franz Kruse: File-Upload mit festem Dateinamen

Beitrag lesen

»» Das ist natürlich ein naheliegender Ansatz. Leider geht er bei mir nicht. Das Verschicken der Datei an einen zweiten Server muss beim Benutzer ein Fenster aufklappen, in dem er sich typischerweise erst einmal anmelden und dann die weiteren Schritte bestätigen muss.

Bei wem muss sich der Benutzer anmelden, bei Server 1 oder Server 2?

Zunächst natürlich bei Server 1, damit er dort überhaupt arbeiten kann. Wenn er den genannten Versendevorgang auslöst, muss er sich auch bei Server 2 anmelden.

»» Daher war meine Idee, vom ersten Server aus eine Antwort an den Benutzer zu schicken, in dem die Datei Base64-kodiert in einem versteckten Formular enthalten ist und als ACTION eine URL auf dem zweiten Server angegeben ist. Das Submit zu diesem Formular wird automatisch ausgelöst, die Daten werden zum zweiten Server übertragen, dieser baut seine Antwortseite, so wie gewünscht, beim Benutzer auf. - Nur: Wie baut man dieses versteckte Formular auf?

Na mit HTML ...
Hidden Field, kodierte und ggf. entsprechend maskierte Daten ins value-Attribut reinschreiben.

Dann hat doch der Base64-Text gar nicht den richtigen MIME-Typ, sondern ist einfach nur Text. Ich hatte an eine korrekt aufgebaute Multipart-Message gedacht. Die bekomme ich ja mit einem Upload-Formular (eins mit <input type=file>-Element. So etwas bräuchte ich, nur eben mit implizit enthaltener Datei.

Sauber ließe sich das mit einem <object>-Element mit Inline-Daten im data-Attribut lösen. So etwas darf man laut W3C auch in Formulare packen. Nur kann das meines Wissens kaum ein Browser. Und damit nützt es mir nichts, ich kann keine Voraussetzung an die Browser unserer Nutzer stellen.

Gibt es nicht mit vorhandenen Mitteln eine Möglichkeit, ein Formular mit eingebetteter Datei aufzubauen, die zu einer korrekt aufgebauten Multipart-Message führt?