2012-02-06 61 views
0

可能重复:
Force Download an Image Using Javascript有没有一个JavaScript的答案来自动下载图像?

基本上我想有一个用户选项,只需点击下载按钮,下载图像(而具有含右键点击或拖动并下降)。我在这里阅读另一篇文章,提供了一个PHP解决方案,但是如果这完全可以在JavaScript中完成,我更喜欢这个选项。那么,可以这样做吗?

+0

我想出了一些东西,虽然有很多限制。请参阅重复问题中的[我的回答](http://stackoverflow.com/a/9158343/447356)。 – 2012-02-06 09:59:34

回答

1

浏览器总是试图解释你给他们的内容。如果浏览器认为,它可以处理它,他们将采取相应的行动。在图像的情况下 - 显示它。你不能改变这种行为。你只能欺骗浏览器告诉他,这不是他认为的内容,通过设置“错误的”内容类型,这迫使浏览器显示“下载”选项。通过JavaScript,您只能在新窗口中打开图像,并让用户使用右键单击/另存为。

+0

因为没有人有答案,而且你看起来很有信心,所以我会接受你的评价。谢谢。 – Ian 2012-02-06 21:32:11

1

强制在新窗口中打开它。

$('img.class').click(function(){ 
window.open($(this).href,'image');}); 

但是,浏览器仍然会将其渲染为图像。 没有办法强制浏览器下载图像,而没有设置内容处置以下载和/或使用.htacess,每次下载图像时都会触发下载链接。我可以告诉你一个服务器端的解决方案,但我不认为这就是你想要的

+1

+1,简单而优雅。我使用这个直接链接到图像的锚元素,然后阻止默认值。如果javascript没有启用,它会打开正常的链接,否则会执行:$('。anchor-class')。click(function(e){e.preventDefault(); window.open($(this))。 attr('href'));});' – brasofilo 2013-01-03 20:48:46

+0

请告诉,服务器端解决方案可能会帮助我。 – 2016-06-05 12:12:54

相关问题