1

假设我有一些指向网络上图像的 URL。假设网址是http://www.gearheadwalls.com/wp-content/uploads/2013/07/Mercedes-Benz-S-Class-4.jpg

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

我试过这个:

window.location.href = Link;

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

我怎样才能做到这一点?

4

3 回答 3

5

您可以在锚点上使用HTML5download属性:

<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>
于 2013-07-28T14:55:20.103 回答
2

您需要传递适当的标头以允许用户下载文件。如果您只是在 url 中提供文件链接,浏览器会以不同的方式解释它。他们可能会先尝试在浏览器中打开文件,如果失败,文件将提示为强制下载。

如果您使用的是 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

于 2013-07-28T15:01:34.243 回答
1

您必须按照http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html的建议设置 Content-Disposition 标头字段,如果您希望图像不应该由浏览器本地处理。如果您使用 PHP,这个链接可能会有所帮助,http://w3schools.invisionzone.com/index.php?showtopic=39943

唯一的问题是,你不能直接让 apache 为你提供这个文件,作为一个普通的静态资源,或者我不知道如何做这个 Apache :)

于 2013-07-28T15:03:52.397 回答