Загрузка нескольких файлов в Django без использования django.forms - PullRequest
3 голосов
/ 04 октября 2010

Итак, я создал форму, которая включает в себя следующий элемент

<input type="file" name="form_file" multiple/>

Это говорит браузеру, чтобы пользователь мог выбрать несколько файлов во время просмотра.Проблема, с которой я сталкиваюсь, заключается в том, что при чтении / записи загружаемых файлов я вижу только последний из файлов, а не все.Я был почти уверен, что видел, как это делалось раньше, но безуспешно искал.Вот как обычно выглядит мое чтение(в объектах и ​​тому подобном)

Я добавил в это print(request.FILES["form_file"]) и получал только последнее имя файла, как и ожидалось.Есть ли какая-то хитрость, чтобы добраться до других файлов?Я застрял с одной загрузкой файла?Спасибо!

1 Ответ

6 голосов
/ 04 октября 2010

На основе вашего файлового элемента form_file значение в request.FILES['form_file'] должно быть списком файлов.Таким образом, вы можете сделать что-то вроде:

for upfile in request.FILES.getlist('form_file'):
    filename = upfile.name
    # instead of "filename" specify the full path and filename of your choice here
    fd = open(filename, 'w')
    fd.write(upfile['content'])
    fd.close()

Используя куски:

for upfile in request.FILES.getlist('form_file'):
    filename = upfile.name
    fd = open(filename, 'w+')  # or 'wb+' for binary file
    for chunk in upfile.chunks():
        fd.write(chunk)
    fd.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...