使用jQuery强制浏览器在单击链接时下载图像

7

我希望在点击链接时开始下载图像。

<a id="downloadImage" href="imagepath">Click here to download</a>

我知道我们可以使用HTML5的download属性(点击链接后强制浏览器另存为文件),但我不想使用它,因为在旧版本的浏览器中无法正常工作。 我已经尝试了这里的方法: 使用Javascript/jQuery下载文件, 但它会在iframe中打开图像。
有人能帮我使用jquery在单击链接时强制浏览器下载图像吗?

认为可以使用Content-Disposition HTTP头从服务器解决此问题。您正在使用哪种服务器端技术? - Nikos Paraskevopoulos
@NikosParaskevopoulos 我想仅使用客户端脚本下载这个...顺便说一下,我们正在使用Asp.Net。 - Maninder
我的观点与Vadim的答案相同。 - Nikos Paraskevopoulos
请问如何强制自动下载PDF文件? - Ciro Santilli OurBigBook.com
2个回答

7
据我所知,目前还没有针对此问题的跨浏览器客户端解决方案(无论是使用jQuery还是其他UI工具包)。要让浏览器下载文件,您需要将一些HTTP头添加到服务器响应中:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=image.jpg

这篇文章 对你也许有所帮助。


我们如何在asp.net中实现这个? - Maninder
@Maninder ASP.NET添加标头的官方文档:http://msdn.microsoft.com/zh-cn/library/ms524327(v=vs.90).aspx - Vadim
http://css-tricks.com/snippets/htaccess/force-files-to-download-not-open-in-browser/ - honzajde

5
您可以使用download属性,虽然在各种浏览器中支持程度不同,但您可以使用modernizr来支持/回退不受支持的浏览器。
对于支持的浏览器,请查看http://caniuse.com/#feat=download
<a href="/path/to/image.jpg" title="ImageName" download="ImageName" >
    <img src="/path/to/image.jpg" alt="ImageName">
</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接