我们说我在网络上有一些图片的网址。我们假设网址为http://www.gearheadwalls.com/wp-content/uploads/2013/07/Mercedes-Benz-S-Class-4.jpg
现在,当用户按下载按钮时,应该下载图像。
我试过这个:
window.location.href = Link;
但有时它只是在浏览器上打开图像,有时会按照我的意愿下载。
我怎样才能做到这一点?
答案 0 :(得分:4)
您可以在锚点上使用HTML5 download
attribute:
<a href="http://www.gearheadwalls.com/wp-content/uploads/2013/07/Mercedes-Benz-S-Class-4.jpg" download="http://www.gearheadwalls.com/wp-content/uploads/2013/07/Mercedes-Benz-S-Class-4.jpg">
<img src="http://www.gearheadwalls.com/wp-content/uploads/2013/07/Mercedes-Benz-S-Class-4.jpg">
</a>
答案 1 :(得分:2)
您需要传递适当的标头才能允许用户下载该文件。如果您只是在网址中提供文件链接,则浏览器会对其进行不同的解释。他们可能会首先尝试在浏览器中打开文件,如果失败,文件会以强制下载的形式提示。
如果您使用的是PHP,则下载脚本中的标题类似于:
header('Content-Type: ' . $mime_type);
header('Content-Disposition: attachment; file="'.$name.'"');
header("Content-Transfer-Encoding: binary");
header('Accept-Ranges: bytes');
header("Cache-control: private");
header('Pragma: private');
可以在此处找到完整的教程:www.phptutorialforbeginners.com/2013/04/file-download-script-in-php-php.html
答案 2 :(得分:1)
如果您希望图片不应由浏览器本机处理,则必须按照http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html的建议设置Content-Disposition标头字段。如果你使用PHP,这个链接可能有帮助,http://w3schools.invisionzone.com/index.php?showtopic=39943
只有这个问题,你不能直接让apache为你提供这个文件,作为普通的静态资源,或者我不知道这样做Apache的方法:)