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

Javascript 是否可以在从其他服务器下载之前动态压缩文件?,javascript,zip,Javascript,Zip,我想知道是否可以编写浏览器扩展或简单的Java脚本代码,这些代码包含指向不同位置的URL列表,可以将所有内容压缩在一起 我是说 例如…在上有3个不同的图像文件: 是否可以通过上的Java脚本代码下载所有压缩文件archive images.zip 我已经找到了,但是我不知道如何使用它从不同的服务器加载文件。请看下面的代码:我已经为您组装了一个用于从那里开始的程序。向下滚动至代码的最后几行 首先,我们需要将图像放到中,您指的是服务器端还是客户端的Javascript代码?这里有一个问题。

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

我是说

例如…在上有3个不同的图像文件:

是否可以通过上的Java脚本代码下载所有压缩文件archive images.zip


我已经找到了,但是我不知道如何使用它从不同的服务器加载文件。

请看下面的代码:我已经为您组装了一个用于从那里开始的程序。向下滚动至代码的最后几行


首先,我们需要将图像放到
中,您指的是服务器端还是客户端的Javascript代码?这里有一个问题。您的解决方案基于我的示例,我的意思是,我将始终拥有图像。但是如果我有不同类型的文件怎么办?@noise看起来你总是可以这样使用:
jQuery.get('http://yourdomain/foo.txt,函数(数据){alert(data);})
以获取文件内容。但是,我认为你不能加载跨域文件,如果你不能通过这个方法加载文件。例如,如果它们是一些文本文件,您可能希望将它们加载到iframe中,然后从中获取iframe内容。您的目标文件类型是什么?@ArashMilani如果我想下载不同类型的文件(但来自同一台服务器),该如何处理?如果框架不工作,因为它开始下载tht文件,img一个不能工作的非图像文件,即我如何处理docx或pdf或xls等压缩files@ChiragMehta你试过我在第二条评论中提到的
jQuery.get
方法吗。它应该像你说的那样工作,文件在同一个域中?当然,
iframe
不会像您所说的那样适用于该文件类型。
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;
    }
});