Загрузка файла, созданного с помощью POST, с помощью GET - PullRequest
0 голосов
/ 30 октября 2019

Я создаю pdf-файл в моем POST-маршруте с pdfkit. После этого я хочу иметь возможность посетить мой маршрут GET с помощью браузера и загрузить файл. Все работает нормально, поскольку я использую статическое имя файла: приложение создает PDF и сохраняет его на жесткий диск. Когда я захожу на мой маршрут через браузер, он автоматически загружает файл.

Проблема в том, что я хочу использовать динамические имена файлов. Например, при записи данных об автомобиле в PDF-файл я использую это в своем POST-маршруте:

const make = req.body.make;
const model = req.body.model;
const filename = make + model;
---
doc.pipe(fs.createWriteStream(`./public/${filename}.pdf`));

Это прекрасно работает, приложение создает PDF-файл с комбинацией имен файлов марки и модели.

Мой первый вопрос: как получить доступ к этому имени файла в моем запросе GET? Я пробовал разные подходы, но, честно говоря, я понятия не имею, что мне делать. И да, я знаю, что дважды сохраняю файл на своем жестком диске, сначала с помощью post, а затем с помощью get.

Моя цель - объединить это с внешним интерфейсом, чтобы пользователь мог одним нажатием загрузить pdfкнопки, и это приводит нас ко второму вопросу: должен ли я сначала сохранить файл в базе данных в моем запросе POST или есть какой-то лучший способ передать его пользователю?

1 Ответ

0 голосов
/ 30 октября 2019

соответствует «Проблема в том, что я хочу использовать динамические имена файлов». используйте «let» вместо «const».

На вопрос «следует ли сохранить файл в базе данных» не храните файл в базе данных. Вместо этого сохраните имя файла и путь к файлу в базе данных.

Вызов APIс методом "GET" с именем файла в качестве параметра. Внутри API вы создаете функцию для получения полного пути к файлу. Я думаю, что после этого вы сможете скачать.

...