web-dev-qa-db-fra.com

Ajouter un type MIME au lien HTML

Je sais comment changer le type MIME dans un serveur Web. J'ai utilisé cela pour m'assurer que le navigateur télécharge mon fichier .scrpt au lieu d'ouvrir la version en texte brut. Jusqu'ici tout va bien mais est-il possible de faire de même avec un lien? Je voudrais créer un lien vers un fichier sur GitHub mais cela s'ouvrira comme un fichier texte brut. Puis-je ajouter un "attribut de type MIME" au lien pour dire au navigateur de télécharger le fichier?

Voici ce que j'aimerais voir:

<a mimetype="application/octet-stream" href="http://Gist.github.com/raw/279094/39d5a2c1037288d5ee0ba1a17dca9edb368bbe42/RepairiPhotoDates.scpt">download</a>
32
Cimm

Il est temps de répondre à ma propre question. C'est une très vieille question et ce n'était probablement pas possible à l'époque, mais beaucoup de choses ont changé depuis. La spécification HTML5 a ajouté l'attribut download:

<a href="hugepdf.pdf" download>Download file</a>

Cela fera exactement ce dont j'ai besoin, dites au navigateur de télécharger le fichier au lieu de l'ouvrir. Merci à Jonathan Svärdén pour avoir résolu ma vieille question!

37
Cimm

Vous pouvez spécifier un type attribute , mais le type de contenu envoyé par le serveur fait autorité.

Cet attribut donne un conseil sur le type de contenu du contenu disponible à l'adresse cible du lien. Il permet aux agents utilisateurs de choisir d'utiliser un mécanisme de secours plutôt que de récupérer le contenu s'ils sont informés qu'ils obtiendront du contenu dans un type de contenu qu'ils ne prennent pas en charge.

À part ça, non, tu ne peux pas.

13
Quentin

Pouvez-vous configurer un script intermédiaire qui télécharge le fichier en question sur le serveur, puis le télécharge vers l'utilisateur avec un type MIME différent?

1
doppelgreener

HTML n'est pas concerné par les en-têtes de réponse HTTP. C'est absolument un problème côté serveur, qui doit être résolu dans les en-têtes HTTP repsonse avant d'envoyer le corps de la réponse HTTP (/ content?). Sans langage de script comme Ruby ou PHP il n'y a rien que vous puissiez faire).

0
Martin Labuschin