Невозможно увидеть выбранные файлы при использовании библиотеки filepond - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь загрузить файлы, используя библиотеку filepond.Я использую python flask в качестве бэкэнда.

Вот код, который я пытаюсь использовать для получения файлов

uploaded_files = request.files.getlist("file")
print("Uplaoded Files are")
print(uploaded_files)

Это возвращает мне нулевой массив.

Ниже приведен мой HTML-код:

<form action="/", method='post',  enctype='multipart/form-data'>
<input type="file" class='filepond' name='file' multiple />
</form>

Я также связал библиотеки файловых прудов для JS и CSS.

Пожалуйста, помогите мне выяснить, в чем проблема.

Ответы [ 2 ]

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

Нет необходимости в filepond, вот простой пример того, как вы можете добиться загрузки файлов с помощью фляги:

  1. HTML-код

    <input type="file" name="file"> // of course remember the name you'll use for your input
    </form>```
    
  2. код колбы

@app.route('/your_endpoint', methods = ['POST'])
def my_super_duper_endpoint():
if 'file' not in request.files:
    print('the form you sent had no file input')
file = request.files['file']
if file.filename == '':
    print('No filewas selected, which means there was a file input but the user sent the form without selecting any file')
if file:                    # yeeeey we got where we wanted to get
    print(file.filename)    # because you see the file name you'll chill cuz you know it was sent and recieved
    filename = secure_filename(file.filename)          #for some little extra security
    file.save(os.path.join('the path where you want to save the file, ./static for instance', filename))
return something
  1. Небольшой импорт, чтобы все заработало:
from werkzeug import secure_filename
import os

Эт вуаля, это сработало для меня, поэтому я надеюсь, что оно поможет вам.

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

FilePond не обновляет исходное поле ввода, потому что, к сожалению, это невозможно (браузеры не разрешают запись в свойство files или value поля).

Для этого вам необходимо либозагрузить файл асинхронно (это то, для чего используется свойство server) или вам нужно закодировать файл как строку base64 (для этого можно использовать плагин кодирования файла ) и отправить его по классической схемесоздайте сообщение и затем расшифруйте его на сервере.

...