ファイルに直接書き込むと、受け入れ可能なzipファイルが得られる非常にきれいなバッファがあることを私は知っています。
fs.writeFile("acceptable.zip", prettyBuffer);
//file acceptable.zip is a valid zip file
この非常に prettyBuffer をユーザーのダウンロードとして提供するにはどうすればよいですか?
私は試した
var uriContent = "data:application/zip," + prettyBuffer);
window.open(uriContent)
と
var uriContent = "data:application/octet-stream," + prettyBuffer);
window.open(uriContent)
エンコーディングが異なる少なくとも 10 のバリエーションがあり、それでも機能しません!
編集:
これが私のコードです
var AdmZip = require('adm-zip');
var zip = new AdmZip();
zip.addFile("row0", new Buffer("hi"), "comment");
var prettyBuffer = zip.toBuffer()
var uriContent = "data:application/zip;base64," + prettyBuffer.toString('base64');
var encodedUri = uriContent;
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "acceptable.zip");
link.click();