繁体   English   中英

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

[英](Javascript) How to force the download of an image using iframe?

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

我正在使用该库( https://github.com/biesiad/multiDownload ),该库与iamges之外的其他文件都可以很好地工作。 当它是图像时,它将不起作用。

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

我已经检查了Google Chrome浏览器和使用该插件的所有文件,但这些文件都被取消了(开发人员工具>网络),但是图像却没有。

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

非常感谢


该函数是这样实现的:

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);
};

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM