2016-09-24 117 views
2

在我的html文件中,我想要点击图像链接时,它开始下载图像到本地文件夹。通常要下载一个链接,我们必须右键单击然后选择另存为。Html:如何下载链接点击,而不是右键单击并保存为

我试过如下:

var href = document.createElement("a"); 
href.setAttribute("href", url1); 
href.appendChild(document.createTextNode("Image Download")); 
href.setAttribute("download", "test.jpg"); 
contentDiv.appendChild(href); 

但它仍然没有工作。我点击,图像浏览器

回答

1

而是尝试沿着这一线路在你的HTML的东西打开:

<a download="test.jpg" href="insert/path" title="insertName"> 
 
insert text here!! 
 
</a>

希望这会有所帮助,但我听说这只是在某些浏览器中工作!

*注 - 我相信你需要像我这样做,只需更换占位符!

+0

'download'我在firefox中试过这个。它没有工作 –

+0

'href =“insert/path /(你希望用户保存到哪里)”'这是什么意思。我的图像href是'https://farm8.staticflickr.com/7555/29856053076_43 ccee f1b6_o.jpg' –

+0

谢谢你的帮助。我迫切需要一些工作解决方案。你能否澄清我的意见 –

1

MDN Reference

这个属性,如果存在,表明笔者拟在 超级链接用于下载的资源,这样当用户 点击的链接,他们将被提示将其保存为本地文件。 如果该属性具有值,则该值将用作保存提示中的预填 文件名,该文件名在用户单击 链接时打开(用户可以在实际保存 课程的文件之前更改名称)。对允许的值没有限制(虽然/和\ 将转换为下划线,阻止了特定的路径提示),但是 您应该考虑大多数文件系统在 方面与文件名支持的标点符号有关的限制,以及浏览器 可能会相应地调整文件名称。

在Firefox中不支持download属性。

var imageURL, contentDiv, href, img; 
 
imageURL = "https://cdn3.iconfinder.com/data/icons/tango-icon-library/48/go-home-128.png"; 
 

 
contentDiv = document.getElementById("contentDiv"); 
 

 
href = document.createElement("a"); 
 
href.setAttribute("href", imageURL); 
 
href.setAttribute("download", imageURL); 
 

 
img = document.createElement("img"); 
 
img.alt = "Download image"; 
 
img.title = img.alt; 
 
img.src = imageURL; 
 

 
href.appendChild(img); 
 
contentDiv.appendChild(href);
<div id="contentDiv"></div>

注: 在谷歌浏览器,您可以使用

不过,如果您使用Chrome,使用JavaScript,你可以用这样的尝试download属性,无需设置要下载的网址。

例子:

<a href="https://cdn3.iconfinder.com/data/icons/tango-icon-library/48/go-home-128.png" download>Image Download</a>

+0

这与我的代码有什么不同。 –

+0

href.setAttribute(“下载”,“下载”);是不同于你的代码@SanthoshYedidi – andrepaulo

+0

我使用'href.setAttribute(“下载”,“test.jpg”);'与href.setAttribute(“下载”,“下载”)有何不同。只有test.jpg和下载,会有什么区别 –

0

从服务器发送以下响应头下载,否则将被显示在浏览器本身就是一个文件:

Content-Disposition: attachment; filename=FILENAME 
Content-Type: application/x-force-download; name="FILENAME" 

其中FILENAME是下载文件时需要的名称。