如何使用PHP单击(全部下载)下载所有图像

时间:2015-07-04 10:24:14

标签: php

如果我点击下载全部我需要将所有图像下载到我的本地系统

<div>
  <img src='image1.jpg'/>
  <img src='image2.jpg'/>
  <img src='image3.jpg'/>
  <button> Download All </button>
</div>

给我一​​些解决方案

3 个答案:

答案 0 :(得分:3)

如果你想下载没有压缩它们,你可以使用这样的javascript函数下载一对一:

function downloadWithName(uri, name) {
    function eventFire(el, etype){
        if (el.fireEvent) {
            (el.fireEvent('on' + etype));
        } else {
            var evObj = document.createEvent('MouseEvent');
            evObj.initMouseEvent(etype, true, false, 
                 window, 0,
                 0, 0, 0, 0,
                 false, false, false, false,
                 0, null);
            el.dispatchEvent(evObj);
        }
    }

    var link = document.createElement("a");
    link.download = name;
    link.href = uri;
    eventFire(link, "click");
}

但是,您需要对代码进行一些更改,以便只需单击即可下载所有图像。在您的情况下,此代码将运行;)

<div id="allImages">
  <img src='image1.jpg'/>
  <img src='image2.jpg'/>
  <img src='image3.jpg'/>
  <button onclick="donwloadAll()"> Download All </button>
</div>

<script>
function donwloadAll(){
    var div = document.getElementById("allImages");
    console.log(div);
    var images = div.getElementsByTagName("img");
    console.log(images)

    for(i=0; i<images.length ; i++){
        console.log(images[i]);
        downloadWithName(images[i].src,images[i].src);
    }
}

function downloadWithName(uri, name) {
    function eventFire(el, etype){
        if (el.fireEvent) {
            (el.fireEvent('on' + etype));
        } else {
            var evObj = document.createEvent('MouseEvent');
            evObj.initMouseEvent(etype, true, false, 
                 window, 0,
                 0, 0, 0, 0,
                 false, false, false, false,
                 0, null);
            el.dispatchEvent(evObj);
        }
    }

    var link = document.createElement("a");
    link.download = name;
    link.href = uri;
    eventFire(link, "click");
}
</script>

您可以想象,您可以在<img>内添加更多<div id="allImages">,用户将一起下载。

答案 1 :(得分:0)

HTTP不支持同时下载多个文件。

有两种解决方案:

  • 打开任意数量的窗口以启动文件下载(使用JavaScript)
  • 创建一个脚本来压缩文件。

您可以使用此link中的试用脚本获取更多选项。

答案 2 :(得分:-3)

您只需左键点​​击网站,然后选择“另存为...”即可。 (在Chrome中)/&#39;将页面保存为&#39; (在Firefox中)。您将获得该页面中文件夹中的所有图像。您不必使用任何脚本或任何CLI。