サーバーサイドで「xlsx」モジュールを使用しています。クライアントからの私のサーバーの取得 .xlsx ファイル。ファイルがマルチパートでアップロードされるとうまく機能します。しかし、Google ドライブまたは Dropbox からファイルをダウンロードしようとすると、常に破損した .xlsx ファイルを受け取ります。
Googleドライブからファイルをダウンロードする機能。
service.files.get({
auth: auth,
fileId: fileId,
alt: 'media'
}, function (err, response) {
if (err) {
res.status(400).json({message: "Error while downloading"});
} else {
fs.writeFileSync(req.body.fileName, response);
var data = xlsParser.parse(fs.readFileSync(req.body.fileName));
res.json(data);
}
});
パーサー コード
module.exports = {
parse: function (file) {
var workSheet = xlsx.read(file, {});
return Object.keys(workSheet.Sheets).map(function(name) {
var sheet = workSheet.Sheets[name];
return {name, data: xlsx.utils.sheet_to_json(sheet, {raw: false})}
})
}}
Google ドライブのファイルは有効です。ノードでそれらを書いた後、それらを開くことができません。私が得るエラー
\node_modules\jszip\lib\dataReader.js:25
throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?");
^
Error: End of data reached (data length = 1771452, asked index = 1771464). Corrupted zip ?