Как загрузить несколько файлов, используя ExpressJS один вызов API - PullRequest
1 голос
/ 12 февраля 2020

Я довольно новичок в expressjs, и я разрабатываю веб-приложение, которое действует как приложение API. Существует также приложение для взаимодействия с внешним миром. При нажатии кнопки в клиентском приложении он отправляет вызов API в бэкэнд-приложение и загружает файл. Этот сценарий работает нормально со следующим кодом.

  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Set disposition and send it.
});

Но теперь у меня есть требование загружать несколько файлов одним нажатием кнопки. Как мне это сделать . Может ли кто-нибудь помочь мне здесь.

1 Ответ

1 голос
/ 12 февраля 2020

HTTP-ответ может иметь только один файл. Действительно, «загрузка файла» в HTTP означает отправку ответа с заголовком Content-Disposition: attachment, чтобы намекнуть клиенту, что этот ответ должен быть сохранен в файловой системе, а не представлен в браузере.

Чтобы загрузить несколько файлов, необходимо, чтобы клиентский код инициировал несколько HTTP-запросов (возможно, к различным URL-адресам), а сервер мог отвечать на каждый запрос другим файлом. Обратите внимание, что многие браузеры отказываются загружать несколько файлов в ответ на одно действие пользователя (из-за боязни затопить пользователя нежелательными файлами) или по крайней мере запрашивают подтверждение перед выполнением этого.

Если вы не можете изменить свой клиентский код для выполнения нескольких запросов, вам нужно будет упаковать свои файлы в один файловый архив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...