2009-07-29 55 views
1

我想下载或只需要从一个网站使用纯编码本身的javascript 保存图像文件。因为我想下载近1000个jpeg,所以我想写一个函数来调用并下载这些图像。使用js下载或只保存一个网站的图像文件

URL是可用的,从我要下载的特定图像

请指导有关这个..

+0

否则是有可能从指定网址下载所有的图像 - 与原来的大小 – praveenjayapal 2009-07-29 11:30:13

回答

3

的JavaScript,在标准浏览器的安全上下文,不允许写入到用户的文件系统(超越缓存的任何副作用)。

您可以使用浏览器插件/添加/扩展/ etc —来实现您想要的功能,但即使是如何实现这一功能的广泛手段也取决于您要定位的浏览器。

坦率地说,这听起来更像是一个像wget这样的蜘蛛工作,而不是JavaScript。

3

根据您的需求,您可能想看看DownThemAll(一个Firefox插件)

它可以让你批量下载链接的图像,电影等从网站。

请注意,这是一个用户工具,而不是开发人员工具,因此您无法以编程方式完成整个任务。

alt text

0

有Firefox扩展FlashGot它可以下载各种影像/音频等页面上一气呵成。

1

大卫说,JS不会这样做。

您可能需要单独使用download manager或浏览器plug-in变体。大多数下载管理器都非常擅长下载一系列文件,例如以“img0001.jpg”开头,以“img9999.jpg”结尾的文件。

0

一个脚本语言可以很容易地处理这个问题。尤其是Python,使用BeautifulSoup,在这种情况下使用起来相当容易。如果你正在寻找,任何可以下载页面并且有一个可用于解析HTML的库的语言都可以正常工作,BS恰好是我拥有广泛知识(因此可以推荐)的唯一一种语言。

0

fileUrl =“http://www.b2hp.com/myProfilePic.jpg”;

var xhr = new XMLHttpRequest(); 
xhr.responseType = 'blob'; 
xhr.onload = function() { 
    var a = document.createElement('a'); // create html element anchor 
    a.href = window.URL.createObjectURL(xhr.response); // xhr.response is a blob 
    a.download = "TEMP-1.jpg"; // Set the file name. 
    a.style.display = 'none'; // set anchor as hidden 
    document.body.appendChild(a); 
    a.click(); 
    a.remove() 
}; 
xhr.open('GET', fileUrl); 
xhr.send();