2017-08-01 33 views
0

jszipを使用して電子アプリケーションを作成し、ユーザーが保存できるzipファイルを作成しました。すべて正常に動作しますが、私の問題はアプリケーションがユーザーのダウンロードフォルダを使用していることです。私は一時ファイルを作っていると推測しています。私は自分のアプリケーションをMacストアに提出しました。彼らは一時ファイルのユーザーダウンロードフォルダの代わりに別の場所を使用したいと思っています。とにかく私は一時的な場所を指定することができますか多分何か他のjszipこれを行うでしょうか?ここで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ではなくのための一時フォルダとしてダウンロードフォルダを使用して、クロムまたはFileSaver.jsではないように見えるこのにもっと探しを使用するコードですユーザーがファイルを配置する場所を選択する前のファイル。とにかく、私の電子アプリの一時的な場所を変更することはできますか?

+0

ファイルをダウンロードするフォルダをユーザーが決定するためのものです。 – guest271314

+0

[jszipのドキュメント](https://stuk.github.io/jszip/)に基づいて、一時ファイルは作成されません。ユーザーのダウンロードディレクトリに表示されている一時ファイルの内容は何ですか?問題を最小限に再現するコードを表示できますか? – Anko

+0

これは、ユーザーがファイルを保存する場所を選択する前です。私はアプリケーションを実行している間にMacコンソールを使用するまでJSZipが一時ファイルを作成したことを認識しておらず、私のアプリがユーザーのダウンロードフォルダにアクセスしていると言ってきました。 –

答えて

0

誰かがこの問題を抱えている場合、私は、HTML5ファイルシステムで、一時ファイルを移動する方法を考え出したことがありません。代わりにnodejsファイルシステムに電子のshowSaveDialogを使用しています。また、.generateAsyncの代わりに.generateNodeStreamを使用するように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.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."); 
    }); 
    }); 
}); 
関連する問題