Я использую модуль «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 ?
.xlsx
в.zip
и открыть его с помощью программы архивации? Если это не работает, попробуйте открыть его в текстовом редакторе и найдите строку, которой не должно быть в первой или последней строке. Как предупреждение от узла, которое случайно записывается в файл. - person Daniel W.   schedule 02.11.2016