Browser Download Dateiaufforderung mit JavaScript

8

Ich habe mich gefragt, ob es eine Methode zur Implementierung der Download-Dateiaufforderung von Browsern mit JavaScript gibt.

Mein Grund - Nun Benutzer werden Dateien auf einen lokalen Dateiserver hochladen, auf den nicht vom Webserver aus zugegriffen werden kann. Mit anderen Worten, beide werden auf verschiedenen Domains sein!

Nehmen wir zum Beispiel an, dass Websites auf www.xyz.com gehostet werden, Dateien jedoch auf einem lokalen Dateiserver mit der Adresse \10.10.10.01\Files\file.txt liegen. Wie lade ich Dateien auf den lokalen Fileserver hoch / transferiere ... mit ActiveX und VBscript! (frag nicht: -)

Ich speichere also den lokalen Dateipfad in meiner Datenbank und verbinde diese Daten mit einem Raster. Wenn der Benutzer auf diesen Link klickt, wird die Datei in einem Fenster geöffnet (mit JavaScript).

Problem ist, dass Dateitypen wie Text, JPG, PDF usw. im Browserfenster geöffnet sind. Wie könnte ich content-type oder content-disposition mit clientseitigem Scripting implementieren? Ist das überhaupt möglich?

BEARBEITEN: Der lokale Dateiserver verfügt über den freigegebenen Ordner eines Fensters, in dem die Dateien gespeichert werden.

    
aix 07.04.2009, 18:57
quelle

4 Antworten

5

"content-disposition: attachment" ist so ziemlich die einzige Möglichkeit, dies zu erzwingen, und dies MUSS im Antwort-Header gesetzt werden.

    
John Gietzen 07.04.2009 19:05
quelle
4

Wenn die Datei wie in Ihrem Beispiel auf einem Webserver gehostet wird, können Sie Folgendes tun:

%Vor%

.. und der Browser wird herausfinden, was mit der Datei zu tun ist. Dies funktioniert hervorragend für die meisten Dateien, wie .xls, .csv usw., aber bedenken Sie, dass dies nicht vollständig ist, da die MIME-Handler-Einstellungen des Benutzers bestimmen, was mit der Datei geschehen soll ... dh wenn dies der Fall ist Eine .txt-Datei wird wahrscheinlich nur im Browser angezeigt und bekommt kein Dialogfeld "Dateidownload".

    
Vince 07.09.2011 16:05
quelle
3

Seit August 2015 ermöglicht das Hinzufügen des Attributs "download" zu Ihrem Tag das gesuchte Verhalten, zumindest in Chrome.

    
Ian Ni-Lewis 03.08.2015 16:24
quelle
1

Sie könnten versuchen, einen einfachen Hyperlink mit type="application/octet-stream" zu verwenden. Scheint, in FF zu arbeiten, aber IE und Opera ignorieren das Attribut.

    
Christoph 07.04.2009 19:12
quelle

Tags und Links