Ajouter un type mime pour lien HTML
Je sais pas comment changer le type MIME dans un serveur web. J'ai utilisé ce pour s'assurer que le navigateur télécharge mes .scrpt fichier au lieu de l'ouverture de la version en texte brut. C'est très bien, mais est-il possible de faire la même chose avec un lien? Je voudrais faire un lien vers un fichier sur GitHub, mais cela va ouvrir comme un fichier texte. Puis-je ajouter un "MIME type d'attribut" au lien de dire au navigateur de télécharger le fichier?
C'est ce que j'aimerais voir:
<a mimetype="application/octet-stream" href="http://gist.github.com/raw/279094/39d5a2c1037288d5ee0ba1a17dca9edb368bbe42/RepairiPhotoDates.scpt">download</a>
- Le type MIME n'est pas de déterminer si un fichier est consulté ou téléchargé. C'est le navigateur qui décide de ce, basé sur le type MIME et le Contenu de l'en-tête de Disposition.
- J'ai le même problème: Le type MIME pour les fichiers que je veux servir n'est pas mis en place par mon hébergeur, et il n'y a aucun moyen de changer cela. Il n'y a vraiment aucun moyen de dire au navigateur dans le <a...> lien de ce qu'il va télécharger?
Vous devez vous connecter pour publier un commentaire.
Temps de répondre à ma propre question. C'est une très vieille question et il n'était probablement pas possible à l'époque, mais beaucoup a changé depuis. La spec HTML5 ajouté le
download
attribut:Cela va faire exactement ce dont j'ai besoin, indiquer au navigateur de télécharger le fichier au lieu de l'ouvrir. Grâce à Jonathan Svärdén pour la résolution de mon ans la question!
Vous pouvez spécifier un l'attribut type, mais le type de contenu envoyé par le serveur fait autorité.
Autre que cela, non, vous ne pouvez pas.
Pouvez-vous mettre un intermédiaire script qui télécharge le fichier en question sur le serveur, puis l'envoie à l'utilisateur avec un autre type MIME?
HTML n'est pas concerné par l'-têtes de réponse HTTP. Ce n'est absolument pas un problème côté serveur, qui doit être résolu dans le HTTP repsonse-têtes avant de les HTTP reponse corps(/contenu?) est envoyé. Sans un langage de script comme Ruby ou PHP, il n'y a rien que vous pouvez faire.