Создание кнопки «Сохранить как» для файла, созданного на сервере - PullRequest
0 голосов
/ 15 октября 2018

В нашем пользовательском интерфейсе мы позволяем пользователю заполнить некоторые детали, а затем нам нужно, чтобы они сгенерировали файл PDF на основе введенных данных.Итак, я делаю WebAPI-вызов на сервер, публикуя некоторые детали, которые, в свою очередь, генерируют двоичный файл.

Мы бы предпочли не сохранять двоичный файл, а вместо этого создать кнопку «Загрузить сейчас»,который загружает PDF, когда он будет готов.

Я надеялся сгенерировать файл и вернуть результат в переменную состояния.

this.setState({ myFile: result });

Где результат - это то, что я получаю от API.

Изатем, когда 'result != null', включите кнопку загрузки.Когда пользователь нажимает эту кнопку, this.state.myFile загрузит ... с именем, которое я предоставляю (через код).

Я не уверен, возможно ли даже сохранение двоичных данных в состоянии.

Есть ли способ иметь кнопку, которая запускает загрузку из переменной состояния?В крайнем случае следует сгенерировать и сохранить файл на сервере, а затем предоставить ссылку, но если мы сможем сохранить его в состоянии и позволить пользователю нажать кнопку «Загрузить», когда файл окажется в состоянии (они маленькие- приблизительно от 100 до 300 тыс.).

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете использовать что-то вроде ниже

var file = window.URL.createObjectURL(result);
var a = document.createElement("a");
a.href = file;
a.download = "Name of PDF";
document.body.appendChild(a);
a.click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...