gpt4 book ai didi

javascript - JSZip 临时文件位置

转载 作者:行者123 更新时间:2023-11-28 04:20:54 24 4
gpt4 key购买 nike

我有一个 Electron 应用程序,使用 jszip 创建一个 zip 文件,然后用户可以保存该文件。一切正常,但我的问题是我的应用程序使用用户下载文件夹。我猜它正在制作一个临时文件。我已将我的应用程序提交到 mac 商店,他们希望我使用另一个位置而不是用户下载文件夹来存放临时文件。无论如何,我可以指定临时位置或者除了 jszip 以外的其他东西来执行此操作吗?

这是我使用的代码

savePNGButton.addEventListener('click', function(e) {
var zip = new JSZip();
if (WatermarkText == ""){
var img = zip.folder("images");
} else {
var img = zip.folder(WatermarkText);
}
$(".WatermarkPhoto").each(function(index) {
imgsrc = this.src;
var DataURL = imgsrc.replace('data:image/png;base64,','');
img.file(WatermarkText+index+".png", DataURL, {base64: true});
});
zip.generateAsync({type:"blob"})
.then(function(content) {
saveAs(content, WatermarkText+".zip");
});
});

[编辑]进一步研究一下,我的问题似乎不是 JSZip,而是 chrome 或 FileSaver.js 在用户选择放置文件的位置之前使用下载文件夹作为文件的临时文件夹。我可以更改 Electron 应用程序的临时位置吗?

最佳答案

如果有人遇到这个问题,我从来没有想出一种方法来绕过 HTML5 文件系统在用户选择下载位置之前移动临时文件的方法。相反,我使用带有 electronics showSaveDialog 的 nodejs 文件系统。我还必须更改 JSZip 以使用 .generateNodeStream 而不是 .generateAsync。以下是我为我工作的功能。

savePNGButton.addEventListener('click', function(e) {
var zip = new JSZip();
if (WatermarkText == ""){
var img = zip.folder("images");
} else {
var img = zip.folder(WatermarkText);
}
$(".WatermarkPhoto").each(function(index) {
imgsrc = this.src;
var DataURL = imgsrc.replace('data:image/png;base64,','');
img.file(WatermarkText+index+".png", DataURL, {base64: true});
});
// zip.file("file", content);
// ... and other manipulations
dialog.showSaveDialog({title: 'Test',defaultPath: '~/'+WatermarkText+'.zip',extensions: ['zip']},(fileName) => {
if (fileName === undefined){
console.log("You didn't save the file");
return;
}
zip
.generateNodeStream({type:'nodebuffer',streamFiles:true})
.pipe(fs.createWriteStream(fileName))
.on('finish', function () {
// JSZip generates a readable stream with a "end" event,
// but is piped here in a writable stream which emits a "finish" event.
console.log("zip written.");
});
});
});

关于javascript - JSZip 临时文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45448726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com