Загрузить функциональность файла для приложения Reaction и Python - PullRequest
1 голос
/ 10 июля 2019

У меня есть одна кнопка в моем коде реакции, и когда я нажимаю на нее, я могу загрузить файл. Я использую Python для бэкэнда (не любой фреймворк). Для реагирующей части я думаю эта ссылка объясняет, что должно быть сделано. При нажатии кнопки я должен выполнить вызов API, а по его возвращению я могу отобразить этот компонент IFrame. Кроме того, еще один ответ рекомендует responseType: 'blob' в Axios Call. Мой вопрос заключается в том, что должен делать сервер, если мы хотим отправить файл поверх. Предположим, он просто создает файл и возвращает его. Я на самом деле использую один сторонний продукт, который имеет собственный интерфейс API, но пример с библиотекой requests подойдет.

def function_called_From_endpoint():
    with open(path) as f:
        return {'data': f }

Что-то вроде этого верно?

1 Ответ

0 голосов
/ 11 июля 2019

Итак, я заставил это работать следующим образом:

def function_called_From_endpoint():
   with open(file_path) as f:
      data = f.read()

   return {"data": data }

и на внешнем интерфейсе:

  axios({
        url: url, //your url
        method: 'GET',
        responseType: 'blob', // important

  }).then((response) => {
         const url = window.URL.createObjectURL(new Blob([response.data]));
         const link = document.createElement('a');
         link.href = url;
         link.setAttribute('download', 'file.txt'); //or any other extension
         document.body.appendChild(link);
         link.click();
  });

Как предложено https://stackoverflow.com/a/53230807/5573241. Это работало хорошо.

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