(Javascript)如何使用iframe强制下载图像?

时间:2013-11-11 00:18:20

标签: javascript jquery iframe bdmultidownloader

我的要求是选择一堆图像并同时下载所有图像。

我正在使用这个库(https://github.com/biesiad/multiDownload),它与其他文件相比非常好。当它是图像时,它不起作用。

我的结论是浏览器以不同于其他二进制文件的方式感知图像。

我已经检查过谷歌浏览器以及使用该插件工作的所有文件,它们被取消(开发人员工具>网络),但图像不是。

有没有办法告诉浏览器它像所有其他文件一样是二进制文件?有什么办法吗?

非常感谢


该功能实现如下:

var methods = {
    _download: function (options) {
        var triggerDelay = (options && options.delay) || 100;
        var cleaningDelay = (options && options.cleaningDelay) || 1000;

        this.each(function (index, item) {
            methods._createIFrame(item, index * triggerDelay, cleaningDelay);
        });
        return this;
    },

    _createIFrame: function (item, triggerDelay, cleaningDelay) {
        setTimeout(function () {
            var frame = $('<iframe style="display: none;" ' +
                          'class="multi-download-frame"></iframe>');
            frame.attr('src', $(item).attr('href') || $(item).attr('src'));
            $(item).after(frame);
            setTimeout(function () { frame.remove(); }, cleaningDelay);
        }, triggerDelay);
    }
};

$.fn.multiDownload = function(options) {
    return methods._download.apply(this, arguments);
};

1 个答案:

答案 0 :(得分:0)

更新: Github上的multiDownload上的README.md说......

  

重要提示:所有$('。my_links')元素必须已定义“href”属性。 “href”必须指向生成正确HTML标题的文档(“Content-Disposition:attachment; filename = my_filename”)。

解决方案?他们说了什么:发出以下标题:

Content-disposition: attachment; filename="picture.jpg"