it-swarm.com.de

Die Datei wird geöffnet, anstatt sie im Internet Explorer in einem Href-Link herunterzuladen

<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'

Wenn ich auf den Link klicke, sollte meine dateiname.xxx heruntergeladen werden.

Es funktioniert perfekt in Chrom. In Internet Explorer wird die Datei jedoch geöffnet, anstatt sie herunterzuladen. Was könnte das Problem sein? Gibt es Eigenschaften, die hinzugefügt werden müssen, damit es funktioniert, z.

Und ich brauche auch ein Beispiel zum Herunterladen von Dateien, das für alle Browser funktioniert.

21

Das Attribut download wird in IE nicht unterstützt (siehe http://caniuse.com/#search=download%20attribute ).

Dies legt nahe, dass das Download-Attribut nur von Firefox, Chrome, Opera und der neuesten Version des Browsers von Blackberry unterstützt wird.

Für andere Browser müssen Sie herkömmliche Methoden verwenden, um den Download zu erzwingen. Es ist serverseitiger Code erforderlich, um einen geeigneten Content-Type- und Content-Disposition-Header festzulegen, der dem Browser (oder Ihrem Trick, abhängig von Ihrer Sichtweise) mitteilt, ob er den Artikel herunterladen soll. Header sollten so aussehen:

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"

(Dank an antyrat für das Kopieren und Einfügen der Header)

18
Chris

Es sollte serverseitig behoben sein. Ihr Server sollte diese Header für diese Dateitypen zurückgeben:

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
10
antyrat

Zip Ihre Datei (.Zip) und IE gibt dem Benutzer die Option, die Datei zu öffnen oder herunterzuladen.

1
Jason

Für Apache2-Server:

AddType application/octect-stream .ova

Der Speicherort der Datei hängt von der jeweiligen Version von Apache2 ab. Unsere befindet sich in /etc/Apache2/mods-available/mime.conf

Referenz:

https://askubuntu.com/questions/610645/how-to-configure-Apache2-to-download-files-directly

1
gerardw

Dies muss eine Frage von http-Headern sein.

siehe hier: HTTP-Header für Dateidownloads

Der Server sollte Ihrem Browser mitteilen, dass er die Datei durch Senden herunterladen soll 

Content-Type: application/octet-stream; 
Content-Disposition: attachment;

in den Kopfzeilen

0
Armel Larcier

Dies ist kein Code-Problem. Dies ist Ihre Standardeinstellung IE

So ändern Sie die Einstellung "always open":

  1. Klicken Sie im Windows Explorer auf das Menü "Extras" und wählen Sie "Ordneroptionen".
  2. Klicken Sie im angezeigten Fenster auf die Registerkarte "Dateitypen" und blättern Sie durch die Liste, bis Sie die zu ändernde Dateierweiterung finden (in alphabetischer Reihenfolge). Wenn Internet Explorer immer versucht, ZIP-Dateien zu öffnen, blättern Sie durch die Liste, bis Sie den Eintrag für "Zip" finden. 
  3. Klicken Sie auf den Dateityp und dann auf die Schaltfläche "Erweitert".
  4. Aktivieren Sie das Kontrollkästchen "Nach dem Download bestätigen" und klicken Sie auf OK> Schließen.

EDIT: Wenn Sie mich fragen, würde ich anstelle von Codeänderungen den folgenden Text hinzufügen: "Internet Explorer - Benutzer: Zum Herunterladen der Datei" Rechtsklick "den Link und drücken Sie " Ziel speichern unter ", um die Datei herunterzuladen. "

EDIT 2: Diese Lösung funktioniert perfekt für Sie. Es ist eine Lösung, die ich gerade von der anderen Antwort kopiert habe. Ich versuche nicht, es als mein Eigenes auszugeben

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"

Sie müssen jedoch sicherstellen, dass Sie den Dateityp angeben, den Sie zulassen. Sie haben in Ihrem Beitrag erwähnt, dass Sie dies für jeden Dateityp wünschen. Dies wird ein Problem sein.

Für ex. Wenn Ihre Website über Bilder verfügt und der Endbenutzer auf diese Bilder klickt, werden diese auf seinen Computer heruntergeladen, anstatt eine neue Seite zu öffnen. Ich habe den Punkt verstanden. Sie müssen also die Dateierweiterungen angeben.

0
AnaMaria

Es ist bekannt, dass HTTP-Header Probleme mit dem Internet Explorer haben. Bearbeiten Sie die .htaccess-Datei Ihres Servers (wenn Sie Apache verwenden) und fügen Sie die folgenden Regeln hinzu:

# IE: force download of .xxx files
AddType application/octect-stream .xxx
<Files *.xxx>
  ForceType application/octet-stream
  Header Set Content-Disposition attachment
</Files>
0
bodi0