2012-06-28 85 views
4

在HTML中,你如何链接到浏览器只能下载的文件,而不是查看?例如,假设我有一个zip文件,my-program.zip。我希望我的网站访问者能够在点击链接时下载该文件。链接如下所示:download my program。在我的网络服务器上,HTML文件和zip文件位于同一个目录中,所以zip文件的相对路径就是它的文件名。如何链接到文件下载,浏览器无法查看?

但是,如果我只是链接到带有<a href="my-program.zip">标记的文件,浏览器将无法识别链接,对不对?由于浏览器无法打开zip文件。那么链接到它的正确方法是什么?

+0

发帖和自我回答,因为我记得有关于HTML这个问题时,我很多年前就开始学习英语。 –

回答

11

其实,你的榜样适当的方式链接到文件:

<a href="my-program.zip">download my program</a> 

你永远无法肯定地告诉该浏览器无法查看文件。你只需链接到它;这取决于浏览器如何做到他们认为最好的 - 显示,下载或执行其他操作。别担心,浏览器通常会做正确的事情。

这遵循网络的原理,您不知道浏览器将如何处理您发送的文件和页面。你提到了一个ZIP文件,但想到PDF文件。它们就像一个ZIP文件:它们不是HTML,它们不是用于浏览器的,浏览器可能会下载它。但是有一些插件,如Adobe PDF ReaderSchubert’s PDF Browser Plugin,它们在浏览器中显示PDF文件的内容。同样,假设可能有一个浏览器的ZIP文件浏览器 - 它可能会向用户显示浏览器中ZIP文件的内容,并让用户决定在哪里提取这些内容。

大多数浏览器不要有描述的假想的ZIP文件查看器,所以该文件将只是下载,就像你想要的。但那并不重要;只要写下你的链接,一切都会好的。

浏览器可以做的事情之外,查看文件或立即下载文件。它也可以询问用户是否要下载文件。或者它可以开始下载文件,在其中检测病毒,并立即删除它。关键是,它取决于浏览器对文件的处理。

请注意,此政策是另一种方式。你的HTML页面看起来像浏览器一样 - 它们都是“资源”。 “资源”是“URL”中的“R”。当您通过访问URL访问HTML页面时,浏览器认为“这是一个HTML资源。我该怎么做?哦,我可以在主窗口中显示它 - 我会这样做的。“这与单击指向其URL的链接下载ZIP文件的过程相同,它认为”这是ZIP资源。我该怎么做?我不能显示它 - 我想我会开始下载并打开下载窗口,使用户可以看到发生了什么“大多数浏览器,甚至让你下载一个网页的HTML就像一个文件,如果你问它。 。

如果您有多种格式的文件,并且希望让浏览器选择可以查看的最佳文件格式,那么您可以使用HTTP Accept header设置系统。例如,如果您的ZIP和RAR版本是我的程序,那么您可以将它链接到my-program,然后浏览器选择最喜欢的版本。但是这种设置可能会很复杂,而且这种系统通常不需要仅仅用于文件下载。Accept头通常是用来获取的东西正确版本的浏览器是为了视图 - 例如,因为它没有任何编解码器,可以播放浏览器可能会选择通过WMV视频文件的MP4视频文件嵌入WMV视频。


如果要强制浏览器下载文件即使浏览器或许可以查看它自身,看到this question

+18

回答自己很好。跟自己说话,好像你是一个不同的人?有点奇怪的xD – TheZ

+0

我不知道我是否在HTTP的解释Accept头是正确的;我没有太多的工作。欢迎更正。 –

相关问题