В Django, для реализации мультизагрузки файлов, широко используется сторонний пакет django-multiupload. Этот пакет позволяет загружать несколько файлов одновременно через веб-страницу.
Для того чтобы вытащить ссылку на загруженный файл из django мультизагрузки, вам понадобится два компонента: представление (view) и шаблон (template).
Представление:
from django.shortcuts import render def upload_files(request): if request.method == 'POST': uploaded_files = request.FILES.getlist('files') for file in uploaded_files: # Здесь можно выполнить какие-либо действия с файлом, # например, сохранить его на сервере или записать в базу данных # Здесь вам нужно вернуть шаблон с ссылками на загруженные файлы return render(request, 'upload_files.html', {'uploaded_files': uploaded_files}) return render(request, 'upload_files.html')
Шаблон (upload_files.html):
<!DOCTYPE html> <html> <head> <title>Мультизагрузка файлов</title> </head> <body> <form action="{% url 'upload_files' %}" method="post" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="files" multiple> <input type="submit" value="Загрузить"> </form> {% if uploaded_files %} <h2>Загруженные файлы:</h2> <ul> {% for file in uploaded_files %} <li><a href="{{ file.url }}">{{ file.name }}</a></li> {% endfor %} </ul> {% endif %} </body> </html>
Здесь мы определяем представление upload_files
, которое обрабатывает загрузку файлов через HTTP POST-запросы. Внутри данного представления мы получаем список загруженных файлов с помощью request.FILES.getlist('files')
. После этого можно выполнить необходимые действия с каждым файлом.
Затем мы отрисовываем шаблон upload_files.html
, передавая в него список загруженных файлов при помощи контекста. Если список uploaded_files
не пустой, мы отображаем ссылки на каждый загруженный файл, используя file.name
для отображения имени файла и file.url
для отображения ссылки на него.
Важно также убедиться, что вы правильно настроили MEDIA_URL и MEDIA_ROOT в файле настроек Django (settings.py
), чтобы файлы корректно отображались по ссылкам.
В результате выполнения кода и загрузки файлов через форму, вы должны увидеть на веб-странице список загруженных файлов с ссылками на них.