5

サーバーサイドで「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 ?
4

1 に答える 1