直接从网址下载图片

时间:2013-07-28 14:45:48

标签: javascript

我们说我在网络上有一些图片的网址。我们假设网址为http://www.gearheadwalls.com/wp-content/uploads/2013/07/Mercedes-Benz-S-Class-4.jpg

现在,当用户按下载按钮时,应该下载图像。

我试过这个:

window.location.href = Link;

但有时它只是在浏览器上打开图像,有时会按照我的意愿下载。

我怎样才能做到这一点?

3 个答案:

答案 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的方法:)