我在两个不同的锚标记上具有下载属性。一种用于Excel文件,另一种用于PDF。 Excel文件下载。 PDF将在新选项卡中打开。为什么会这样呢?下面的代码:
<div class="col-2 center">
<a download href="files/excel-sample.xlsx">
<img src="img/excel-logo.png" />
</a>
</div>
<div class="col-2 center">
<a download href="files/pdf-sample.pdf">
<img src="img/pdf-logo.png" />
</a>
</div>
答案 0 :(得分:3)
下载基础
因此,实际上发生的是,当您链接到文件URL时,浏览器会打开该URL,并且如果它具有显示内容的可访问性,它将几乎总是会显示。一些最常见的示例是图像文件(.png,.jpg等)。但是,如果浏览器无法读取文件类型(.zip),则它将几乎总是下载内容。强制浏览器下载文件的一种好方法是在download
标签中添加<a>
属性。
大多数现代浏览器都可以读取和访问PDF,因此默认情况下,浏览器设置为打开文件而不是下载文件。由于具有这种可访问性,因此大多数现代浏览器都引入了一些设置,这些设置使用户可以逐台计算机决定是否应在另一个窗口中打开PDF(或任何其他可读文件)或默认情况下下载。在许多情况下,即使使用download
属性,浏览器仍然可以自行决定如何处理文件。
可能的解决方案
1 -如果您只是试图在浏览器上实现下载功能(看起来好像不是,但我想无论如何我都应该包括在内),则可以打开chrome,然后转到到设置->高级设置->内容设置-> PDF文档->切换下载
2 -您可以压缩和压缩文件,以便浏览器被迫下载文件。
3 -如果您具有对站点的根服务器访问权限,并且该站点正在使用Apache,则可以将以下内容添加到您的.htaccess中
ForceType application/octet-stream
Header set Content-Disposition attachment
如果您使用的是NGINX Web服务器,则可以添加以下重定向
location ~* (.*\.pdf) {
types { application/octet-stream .pdf; }
default_type application/octet-stream;
}
答案 1 :(得分:-1)
您不能使用String.intern
但您可以使用<a download href="files/pdf-sample.pdf">
预览文件
答案 2 :(得分:-1)
解决方案是:
<a href="pdf-sample" download="pdf-samle.pdf">
请注意,“ href”的值不带.pdf减小值,而“下载”的值带.pdf减小值。请记住,您还必须从目标文件中删除.pdf压缩文件。似乎浏览器将下载的文件视为非pdf文件,因此默认情况下不会打开它。