У меня есть форма, которая позволяет пользователям выбирать zip-файл для загрузки. Я пытаюсь выполнить проверку этого zip-файла на стороне клиента перед его загрузкой на мой сервер, поскольку загрузка может занять некоторое время, и я также хотел бы сохранить пропускную способность.
Все, что мне нужно сделать, это прочитать файл .csv, который должен быть включен в zip, и проверить наличие других файлов в zip, на которые есть ссылки в .csv. Для этого я пытаюсь использовать JSZip.
Если архив небольшой, это прекрасно работает. Если архив большой (тестирование с файлом ~ 500 МБ), Chrome вылетает.
var reader = new FileReader();
reader.onload = function (e) {
console.log("Got here!");
// Read csv using JSZip, validate zip contents
};
reader.readAsArrayBuffer(file);
В своем коде я закомментировал всю логику обратного вызова onload и убедился, что ни одна из них не вызывает сбоя. Я обнаружил, что Chrome дает сбой до того, как будет вызван обратный вызов onload.
Я проверил это в FireFox с гораздо большими zip-файлами, и все работает нормально.