Задать вопрос
@NyxDeveloper

Как создать zipfile.Zipfile в нужной мне папке?

Делаю в своем приложении отдачу всех файлов из папки одним архивом. Все круто, архив создается, но почему-то при скачивании у него нет имени, а внутри находится полный путь до файлов из пустых директорий. Как мне создать файл архива в папке media/archs/ и как назначить архиву имя при скачивании?

views.py
def DownloadAllFilesView(request, objId):
    if request.method == 'POST':
        project_folder = Doc.objects.filter(idProj=Project.objects.get(id=objId)).first().idProj.name.replace(' ', '_')
        path = settings.MEDIA_ROOT + '/project_%s/' % project_folder
        z_name = '%s.zip' % Project.objects.get(id=objId).name.replace(' ', '_')

        z = zipfile.ZipFile(z_name, 'w')  # Создание нового архива

        for file in os.listdir(path):
                z.write(os.path.join(path, file))  # Создание относительных путей и запись файлов в архив

        z.close()
        return FileResponse(open(z.filename, 'rb'))
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Разработка на Python
    1 год
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы