2013-01-24 36 views
1

我希望我的用户能够使用jQuery从我的网站下载图像。例如,我在我的网站上有一个如下所示的图像。当用户点击“下载”按钮时,图像必须下载到用户系统。我该怎么做才能做到这一点?使用jQuery启动图像下载

<div class="download"><img src="http://m.com/hello.png"><div> 

编辑:PHP代码也欢迎,例如download.php?url=http://m.com/hello.png

PS:http://m.com/hello.png是一个外部URL。

+0

使用PHP是否可以接受? – adamdehaven

+0

是啊:)但jquery会更容易 –

+0

据我所知,它只能在客户端使用IE解决方案。否则,你将不得不做它的服务器端 – Johan

回答

0

PHP代码:

header('Content-Type: image/png'); 
header('Content-Disposition: attachment; filename="filename.png"'); 
readfile('hello.png'); 
+0

这也适用于外部网址吗? –

+0

您的意思是外部图片网址? – Learner

+0

检查此:http://stackoverflow.com/questions/9801471/download-image-from-url-using-php-code – Learner

0

你将不能够可靠地做到这一点,而不使用PHP。我在这个网站上发现了一个以前的问题,可以帮助你:Force Download an Image Using Javascript

实际上有一种方法依赖于HTML5在那里,但我不太确定你可以考虑可靠。

3

对于服务器端,您可以将图像点击指向将强制下载的PHP页面。

在HTML页面中,你会:

如果如果JPG文件

<a href="download.php?ext=jpg"><img src="hello.jpg" /></a>

然后PHP页面download.php如下图所示PNG文件

<a href="download.php?ext=png"><img src="hello.png" /></a>

<?php 
if($_GET['ext'] == 'png') { 
    $ext = 'png'; 
} elseif($_GET['ext'] == 'jpg') { 
    $ext = 'jpg'; 
} 

header('Content-disposition: attachment; filename=Name-of-Image.'.$ext); 
header('Content-type: image/'.$ext); 
readfile('http://m.com/hello.'.$ext); 

?> 
+0

我认为这段代码是为内部图像..我可以知道外部网址的代码 –

+0

已更新我的回答 – adamdehaven

+0

嘿,感谢它的working.how来区分png和jpg图片吗? –