从其他服务器下载之前是否可以动态压缩文件?

2024-03-24

我想知道是否可以编写浏览器扩展或简单的 Java 脚本代码,其中包含指向不同位置的 URL 列表,可以将所有内容压缩在一起。

我是说...

例如...有 3 个不同的图像文件:

  • http://example1.com/a.png http://example1.com/a.png
  • http://example22.com/b.png http://example22.com/b.png
  • http://example333.com/c.png http://example333.com/c.png

是否可以通过 Java 脚本代码将它们全部下载为压缩文件 archive images.ziphttp://mysite.com http://mysite.com ?

我已经发现JSZip http://stuartk.com/jszip/,但是我不知道如何使用它从不同服务器加载文件。


看看这段代码:我已经组装了一个Demo http://jsfiddle.net/q5asM/14/让您从那里开始。向下滚动到代码的最后几行。

首先我们需要将图像加载到<img>标签。然后我们将阅读它们的内容。那么一切都可以通过 jszip 完成。

但也有局限性。您无法从其他域加载图像。因此图像应该位于相同的 url 中,或者您可以通过服务器端动态加载它们,例如:http://yourdomain.com/fileLoader.php?url=Url_To_External_Image

这是发挥神奇作用的代码 snipee:

function getBase64Image(imgage) {
    var canvas = document.createElement("canvas");
    canvas.width = imgage.width;
    canvas.height = imgage.height;

    var ctx = canvas.getContext("2d");
    ctx.drawImage(imgage, 0, 0);

    var dataURL = canvas.toDataURL("image/png");
    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}

var img = $("<img />").attr('src', '../../../img/logo.png');

img.load(function() {
    if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
        alert('broken image!');
    }
    else {
        var zip = new JSZip();
        content = getBase64Image(img[0]);
        zip.file("24.jpg", content + "\n");
        var content = zip.generate();
        location.href="data:application/zip;base64,"+content;
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从其他服务器下载之前是否可以动态压缩文件? 的相关文章

随机推荐

  • 嵌套事务-回滚场景

    A con begin B con rollback con commit B con begin con commit 在上面的代码中 我在 A 处开始一个新的数据库事务 它成功执行了一些事务 之后B 开始执行 并且它也成功执行了一些事务
  • 在头文件中使用声明

    我一直在寻找有关使用的一些说明使用声明在头文件中 我正在四处搜索 但无法完全得到我正在寻找的答案 到目前为止我的研究得出的结论是 将它们用于非全局的范围是好的 而命名空间指令则不好 我明白 至少我希望如此 所以在我的例子中我使用shared
  • 如何获取到 CGPath 的距离以进行命中测试?

    我有一个打开的 CGPath UIBezierPath 我想检测用户是否触摸它 即某个点是否在距路径一定距离内 路径是开放的 即直线 曲线 而不是形状 它可以包含直线和曲线元素 如何获得到路径的距离来进行命中测试 CGPath UIBezi
  • 如何等待matplotlib动画结束?

    考虑直接取自 Matplotlib 文档的以下代码 import numpy as np import matplotlib pyplot as plt import matplotlib animation as animation im
  • CORS 中的 POST/GET 与 PUT/DELETE

    我刚刚读过this https www w3 org Security wiki Same Origin Policy 同源策略允许使用 GET 和 POST 的跨源 HTTP 请求 方法 但拒绝源间 PUT 和 DELETE 请求 PUT
  • 使用VBA调用存储过程

    我正在使用 Access 2010 用户前端和 Microsoft SQL Server 2008 后端工作 Access 中的表都链接到 SQL Server 数据库 我有一个存储过程 它将新值 由参数提供 插入到表中 我之前问过类似的问
  • Ruby on Rails - 表情符号未保存在 MySQL 中

    我正在开发一个 Rails 应用程序 用户可以将照片上传到他们的个人资料中 每张照片都有一个标题 该标题应该支持表情符号 尽管将表的编码更改为utf8mb4并修改数据库 yml当我尝试保存标题中带有表情符号的照片时 MySQL 返回错误 字
  • ThreadStart.BeginInvoke 在 Compact 框架上抛出 NotSupportedException

    我正在一个紧凑框架项目上使用线程 并且代码如下所示 当我尝试进入 StartThreads 时 会抛出 NotSupportedException 这看起来有点奇怪 为什么异常是在调用 StartThreads 的行上抛出的 而不是在内部抛
  • purrr 将 t.test 映射到分割的 df 上

    我是新来的咕噜声 Hadley https stackoverflow com users 16632 hadley有前景的函数式编程R库 http blog rstudio org 2015 09 29 purrr 0 1 0 我正在尝试
  • 为什么人们不访问 Rspec 中的数据库?

    我经常看到Rspec中使用mock的代码 如下所示 describe GET show do it should find and assign question do question Question new Question shou
  • 如何配置 Nginx 以使用 html5 模式

    对于 angularjs 中的干净网址 我必须使用 locationProvider html5Mode true 但是当我刷新页面时 它显示 404 我读到我需要配置服务器文件 结构 html views home html about
  • Spark DataFrame:对组进行操作

    我有一个正在操作的 DataFrame 我想按一组列进行分组 并按组对其余列进行操作 正常情况下RDD land 我认为它看起来像这样 rdd map tup gt tup 1 tup 2 tup 3 tup groupByKey forE
  • document.getElementById 对于单标签 DIV 失败

    我的 HTML 页面上有 2 个 DIV div div div div 我有一个脚本可以访问网络服务并用数据填充它们 document getElementById divDebug innerHtml rawResult documen
  • 最低限度的文本清理

    在接受 存储 处理和显示 Unicode 文本的应用程序中 为了讨论的目的 我们假设它是一个 Web 应用程序 哪些字符应该always从传入文本中删除 我能想到一些 大部分列在C0 和 C1 控制代码维基百科文章 http en wiki
  • 从命令行执行Java

    我的桌面上有一个名为 Stuff 的文件夹 在该文件夹中我有以下内容 你好 java mail jar 而Hello java是从mail jar导入的 所以我需要告诉Hello java寻找mail jar 从 Windows 命令行和
  • 仅使用 Dockerfile 中的其他更改重建相同的 docker 映像

    我使用 Dockerfile 构建 Docker 映像 构建镜像后 我对 Dockerfile 进行了一些基本更改 是否可以仅通过额外的更改来重建相同的映像 由于创建图像需要很长时间 因此我不想完全构建它 提前致谢 所有 docker 构建
  • 设置私有 luarocks 存储库

    对于我的设置 我需要一个 luarocks rock 的私有存储库 我可以将它们安装在我的开发环境中 而无需连接到互联网 为 luarocks 设置远程存储库的步骤是什么 我可以使用 sftp 服务器吗 有人有过这样的经历吗 在深入研究这个
  • C++:类成员引用有效性?

    Class A A int foo m foo foo int m foo int main void A bar 0 int var 5 bar new A var std cout lt lt Is m foo still valid
  • Python中按多个条件排序

    我正在使用Python 3 8 我试图按分数对玩家进行排序 按降序排列 然后 只有当他们具有相同的分数时 才按排名排序 我已经读过排序方法 https docs python org 3 8 howto sorting html Pytho
  • 从其他服务器下载之前是否可以动态压缩文件?

    我想知道是否可以编写浏览器扩展或简单的 Java 脚本代码 其中包含指向不同位置的 URL 列表 可以将所有内容压缩在一起 我是说 例如 有 3 个不同的图像文件 http example1 com a png http example1