2016-07-23 6 views
1

В настоящее время я использую флягу для backend и javascript (& HTML) для переднего конца. Я читаю файл из поля формы в HTML и отправить его в бэкэнд (колбу) и чтение файла с конца, как followsas следующим образом:Выбор файлов в фляге

<input id="upload_input" name="file" type="file"/> {frontend : HTML form} 

f = request.files['file'] {backend} 

Я использую средство выбора файлов, чтобы выбрать файл. После обработки файла я отправляю вывод на передний конец. Теперь, выполнив это, я возвращаюсь к концу. Снова после отображения информации, полученной из бэкэнд, я хочу использовать тот же файл (то есть, я хочу повторно отправить тот же файл обратно на бэкэнд). Но мне нужен какой-то механизм, в котором я должен снова выбрать файл (потому что он тот же самый файл, который я выбрал ранее), во всяком случае мое приложение понимает, чтобы перечитать один и тот же файл. Может кто-нибудь, пожалуйста, помогите мне в этом?

+0

Возможно, объясните немного больше того, что делает второй вызов сервера с этим файлом. Не могли бы вы просто выполнить то, что он делает непосредственно с первого вызова? – Suever

+0

Вы можете попробовать использовать сеансы и сохранить файл для сеанса. Посмотрите на https://pythonhosted.org/Flask-Session/ для некоторых примеров кода. Например, вы можете сохранить ключ «filepath» в сеансе. – Shef

+0

Означает ли следующий ваш главный вопрос: «Как мое приложение может запомнить путь к файлу?» –

ответ

0

Вы должны посмотреть на кол-во сеансов. Ссылка здесь: Flask-Session

Это позволит вам сохранить файл в каталоге на сервере (с использованием обычного ввода-вывода файла python), затем получить доступ к его пути как session['filepath']. Обязательно удалите файл после завершения сеанса, чтобы освободить место.

0

Путь к локальному файлу - это просто строка. Поскольку вы заявляете в своем вопросе, что хотите «повторно отправить тот же файл обратно в бэкэнд», на самом деле клиент (браузер) должен делать запоминание.

  1. Если ваша страница не перезагружается между запросами, вы можете просто сохранить ее в переменной! Но я уверен, что это произошло с тобой.

  2. Вы можете сохранить строку, используя API-интерфейсы localStorage или sessionStorage. Это очень легко изучить. Here и here - это документация.

Смежные вопросы