Javascript JSZip压缩图像上传、加密、解密、显示图像

Javascript JSZip压缩图像上传、加密、解密、显示图像,javascript,file-upload,compression,jszip,cryptico,Javascript,File Upload,Compression,Jszip,Cryptico,最初,我使用FileReader在客户端将图像上传转换为base64,然后。将结果附加到表单字段,然后提交,但这占用了太多的时间,所以我正在寻找替代方法 我试图先使用压缩,然后加密,然后提交,检索,解密,并显示图像,但我被困在如何做到这一点。我的压缩尝试是这样的 $(document).on(“更改”,“聊天图像”,函数(){ var rid=$(this).closest(.chat”).data(“id”); var tempSrc=$(this.val(); /*在这里制作一个zip文件

最初,我使用FileReader在客户端将图像上传转换为base64,然后。将结果附加到表单字段,然后提交,但这占用了太多的时间,所以我正在寻找替代方法

我试图先使用压缩,然后加密,然后提交,检索,解密,并显示图像,但我被困在如何做到这一点。我的压缩尝试是这样的

$(document).on(“更改”,“聊天图像”,函数(){
var rid=$(this).closest(.chat”).data(“id”);
var tempSrc=$(this.val();
/*在这里制作一个zip文件*/
var fi=$(本);
var fileInput=fi;
var文件=[];
//获取所有选定文件
$.each(fileInput.files,函数(i,文件){
文件。推送(文件);
});
//创建一个zip对象
var zip=newjszip();
//将所有文件添加到zip
函数addFileToZip(n){
如果(n>=files.length){
//在这里,在客户端生成要压缩的文件
generateAsync({type:“blob”,compression:“default”}){
//生成的zip内容转换为文件类型
var files=新文件([content],“default.zip”);
console.log(文件);
var eImgArray={};
$.ajax({
url:ajax\u object.ajax\u url,
键入:“post”,
数据:{
行动:'获取房间\成员\钥匙',
里德:里德,
},
beforeSend:function(){},
成功:函数(html){
var pubKeys=$.parseJSON(html);
$.each(公钥、函数(键、值){
var imgEncrypt=cryptico.encrypt(文件,值);
var imgSrc=imgEncrypt.cipher;
eImgArray[key]=imgSrc;
});
var strImgArray=JSON.stringify(eImgArray);
},
});
});
返回;
}
var file=files[n];
var arrayBuffer;
var fileReader=newfilereader();
fileReader.onload=函数(){
arrayBuffer=this.result;
zip.file(file.name,arrayBuffer);
addFileToZip(n+1);
}
readAsArrayBuffer(文件);
}
addFileToZip(0);
});

你把这件事搞得太复杂了

$(document).on(“更改”,“聊天图像”,函数(){
var files=this.files;
var zip=newjszip();
对于(变量i=0;izip.forEach(show_all_images));
});
});


这对于任何人来说都太不完整,无法尝试查看。至少发布一篇关于HTML的文章,这样我们就可以更好地了解您想要实现的目标here@MerakMarey我试图将他们的示例转换成一个堆栈片段,但仍然很可怕,而且过于复杂。他们的问题归根结底是把一切都复杂化了。@wizzwizz4 lol我不是一个专业的开发人员,不会争论,所以我可以先压缩,然后加密,然后解密,然后显示图像?我想这是我困惑的部分。在我解密并将其添加到图像标记后,您可以添加模拟从文件中检索该图像的步骤吗?谢谢你的帮助。我有加密/解密部分。我只是不知道如何在解密压缩文件后循环浏览压缩文件中的图像文件并显示它们。@user300979我刚刚花了一个小时试图使加密/解密工作正常。:-/也许我应该试试看。:-)我再加上。@user300979我想现在就这些了。如果这解决了您的问题,请单击“接受”按钮。如果你完全,100%确定这完全和正确地解决了你的问题,请同时奖励奖金;不过,通常人们会等到问题过期后再这样做,以增加对问题的关注。@user300979谢谢!☺