<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
Lorsque je clique sur le lien, mon nom de fichier.xxx devrait être téléchargé.
Cela fonctionne parfaitement en chrome. Mais dans Internet Explorer, il ouvre le fichier au lieu de le télécharger. Quel pourrait être le problème? Y a-t-il des propriétés à ajouter pour que cela fonctionne, par exemple.
Et aussi j'ai besoin d'un exemple de téléchargement de fichier qui fonctionne pour tous les navigateurs.
L'attribut download n'est pas pris en charge dans IE (voir http://caniuse.com/#search=download%20attribute ).
Cela suggère que l'attribut de téléchargement n'est pris en charge que par firefox, chrome, opera et la dernière version du navigateur de blackberry.
Pour les autres navigateurs, vous devrez utiliser des méthodes plus traditionnelles pour forcer le téléchargement. C’est-à-dire que le code côté serveur est nécessaire pour définir un en-tête Content-Type et Content-Disposition approprié permettant au navigateur de télécharger l’élément (ou une astuce selon votre point de vue). Les en-têtes devraient ressembler à ceci:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
(merci à antyrat pour le copier/coller des en-têtes)
Il devrait être corrigé côté serveur. Votre serveur doit renvoyer ces en-têtes pour ces types de fichiers:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
Zip votre fichier (.Zip) et IE donnera à l'utilisateur la possibilité d'ouvrir ou de télécharger le fichier.
Pour le serveur Apache2:
AddType application/octect-stream .ova
L'emplacement du fichier dépendra de la version d'Apache2 en particulier - la nôtre se trouve dans /etc/Apache2/mods-available/mime.conf.
Référence:
https://askubuntu.com/questions/610645/how-to-configure-Apache2-to-download-files-directly
Cela doit être une question d'en-têtes http.
voir ici: En-têtes HTTP pour le téléchargement de fichiers
Le serveur doit indiquer à votre navigateur de télécharger le fichier en envoyant
Content-Type: application/octet-stream;
Content-Disposition: attachment;
dans les en-têtes
Ce n'est pas un problème de code. Ce sont vos paramètres par défaut IE
Pour changer le réglage "toujours ouvert":
EDIT: Si vous me demandez, au lieu d’apporter des modifications au code, j’ajouterais le texte suivant "Utilisateurs d’Internet Explorer: Pour télécharger le fichier," Clic droit "le lien et Appuyez sur " Enregistrer la cible sous " pour télécharger le fichier. "
EDIT 2: CETTE solution fonctionnera parfaitement pour vous. C'est une solution que je viens de copier de l'autre réponse. Je n'essaie pas de le faire passer pour moi
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
Cependant, vous devez vous assurer que vous spécifiez le type de fichier (s) autorisé (s). Vous avez mentionné dans votre message que vous le souhaitiez pour tout type de fichier. Ce sera un problème.
Par ex. Si votre site contient des images et si l'utilisateur final clique sur ces images, elles seront téléchargées sur son ordinateur au lieu de s'ouvrir sur une nouvelle page. Vous avez le point. Vous devez donc spécifier les extensions de fichier.
Il est connu problème d’en-têtes HTTP avec Internet Explorer. Essayez de modifier le fichier .htaccess
de votre serveur (si vous utilisez Apache) et incluez les règles suivantes:
# IE: force download of .xxx files
AddType application/octect-stream .xxx
<Files *.xxx>
ForceType application/octet-stream
Header Set Content-Disposition attachment
</Files>