Comment puis-je créer un lien vers un fichier à télécharger un navigateur ne peut pas afficher?
En HTML, comment faites-vous un lien vers un fichier que le navigateur ne peut télécharger, pas vue? Par exemple, disons que j'ai un fichier zip, my-program.zip. Je veux que les visiteurs de mon site web pour être en mesure de télécharger ce fichier, lorsqu'ils cliquent sur un lien. Le lien devrait ressembler à ceci: télécharger mon programme. Sur mon serveur, le fichier HTML et le fichier zip sont dans le même répertoire, de sorte que le chemin relatif du fichier zip est tout simplement son nom de fichier.
Mais si j'ai juste un lien vers le fichier avec une <a href="my-program.zip">
tag, le navigateur ne reconnaît pas le lien, à droite? Car les navigateurs ne peuvent pas ouvrir des fichiers zip. Alors, quelle est la bonne façon de le lien?
OriginalL'auteur Rory O'Kane | 2012-06-28
Vous devez vous connecter pour publier un commentaire.
En fait, votre exemple est la bonne façon de le lien vers le fichier:
Vous ne pouvez jamais dire avec certitude qu'un navigateur ne peut pas afficher un fichier. Vous venez de lien; c'est au navigateur de faire ce qu'ils pensent le mieux avec elle – afficher, télécharger, ou faire autre chose. Ne vous inquiétez pas, les navigateurs sera généralement faire la bonne chose.
Il suit le principe de la web que vous ne savez pas ce que le navigateur va faire avec les fichiers et les pages que vous envoyez. Vous avez parlé d'un fichier ZIP, mais pense que des fichiers PDF. Ils sont comme un fichier ZIP: ils ne sont pas en HTML, ils ne sont pas faits pour un navigateur, et le navigateur peut le télécharger. Mais il y a des plugins tels que Adobe PDF Reader et Schubert PDF Browser Plugin qu'afficher le contenu du fichier PDF à droite dans le navigateur. De même, en théorie, il pourrait y avoir un fichier ZIP visionneuse pour le navigateur, il peut afficher à l'utilisateur le contenu du fichier ZIP dans le navigateur et laisser l'utilisateur décider où extraire le contenu.
La plupart des navigateurs ne pas ont l'hypothétique fichier ZIP observateur décrit, de sorte que le fichier il suffit de télécharger, comme tu le voulais. Mais qui n'a pas vraiment d'importance; il suffit d'écrire votre lien et tout va bien se passer.
Le navigateur peut faire d'autres choses que l'affichage du fichier ou de télécharger le fichier immédiatement. Elle pourrait aussi demander à l'utilisateur s'il veut télécharger le fichier. Ou elle pourrait commencer à télécharger le fichier, de détecter un virus, et supprimer tout de suite. Le point est, c'est le navigateur ce qu'il fait avec le fichier.
Noter que cette politique va dans l'autre sens. Vos pages HTML regarder le navigateur comme fichiers rechercher – ils sont tous deux des “ressources”. “Ressource” est le “R” en “URL”. Lorsque vous visitez une page HTML en visitant l'URL, le navigateur pense “c'est une ressource HTML. Que dois-je faire avec cela? Oh, je peux l'afficher dans la fenêtre principale – je vais le faire.” C'est le même processus que le téléchargement d'un fichier ZIP après avoir cliqué sur un lien à partir de son URL, où il pense “c'est un ZIP de ressources. Que dois-je faire avec cela? Je ne peut pas l'afficher – je crois que je vais commencer à le télécharger et ouvrir la fenêtre des téléchargements, de sorte que l'utilisateur peut voir ce qui s'est passé.” La plupart des navigateurs vous permettent même de télécharger le code HTML d'une page, comme un fichier, si vous le demandez.
Si vous avez plusieurs formats de vos fichiers, et que vous voulez laisser le navigateur choisir le meilleur qu'il peut afficher, alors vous pourriez mettre en place un système à l'aide de la L'en-tête HTTP Accept. Par exemple, si vous aviez à la fois un ZIP et RAR version de mon-programme, alors vous pourriez faire en sorte de vous lier à juste
my-program
et le navigateur choisit la version qu'il aime le mieux. Mais le programme d'installation de ce qui peut être compliqué, et ce genre de système n'est pas habituellement nécessaire pour juste un téléchargement de fichier. L'en-tête Accept est habituellement utilisé pour obtenir la bonne version de quelque chose que le navigateur est censé vue – par exemple, le navigateur peut choisir un fichier vidéo MP4 sur une vidéo WMV fichier, car il n'a pas de codec qui peut jouer intégré des vidéos WMV.Si vous souhaitez forcer le navigateur à télécharger un fichier même si le navigateur peut probablement afficher sur son propre, voir cette question.
Je ne sais pas si mon explication de l'en-tête HTTP Accept est correct; je n'ai pas travaillé avec lui beaucoup. Les Corrections sont les bienvenus.
OriginalL'auteur Rory O'Kane