Мне нужно загрузить содержимое таблицы, показанное в виде CSV-файла. У меня есть код для правильного форматирования содержимого таблицы, чтобы он мог быть сохранен как CSV-файл (например, разделитель столбцов является запятой, каждая запись таблицы находится в новой строке).Загрузите длинные данные в виде файла CSV
Итак, в моем контроллере, у меня есть следующий код:
window.location.href = '/download?data=' + encodeURIComponent($scope.csvString);
Я использую NodeJs для серверной части. Здесь у меня есть следующий маршрут:
app.get('/download', function (req, res) {
var data = req.query.data;
res.attachment('data.csv');
res.setHeader('Content-Type', 'text/csv');
res.end(data);
});
Это работает отлично. Работа загрузки и данные в загруженном файле находятся в идеальном формате CSV. Без вопросов.
Проблема возникает, когда в таблице слишком много записей, то есть когда данные огромны. Из-за этого параметр запроса действительно огромен, и я предполагаю, что он превышает предел, и поэтому запрос GET возвращается с ошибкой 400 (неудачный запрос) - обратите внимание, что согласно моему анализу запрос никогда не доходит до сервера, вместо этого я заметил, что запрос не удался с помощью инструментов разработчика Chrome. В браузере URL-адрес просто равен www.my_domain.com/download?data=the_lengthy_data
. Вот и все. Веб-страница пуста/пуста, и файл не загружается.
Таким образом, я хочу знать, как я могу загрузить длительные данные? Все примеры, с которыми я столкнулся, делают запрос GET, и поэтому я должен передавать длинные данные в качестве параметра запроса. Есть ли другой подход?
Данные CSV, сгенерированные на интерфейсе, отправляются на сервер, только для того, чтобы быть загружены обратно на клиент? –
@SalehenRahman Да, ваше понимание верное. – callmekatootie