Принудительная загрузка файла в веб-приложении Django в мобильных браузерах - PullRequest
0 голосов
/ 06 мая 2018

У меня есть FileField с фильмом, я пытаюсь, чтобы пользователь на мобильной платформе (chrome / safari) мог нажать кнопку загрузки и загрузить его. В настоящее время он открывается в новом окне, независимо от того, что я делаю.

My View

def download(request):
    file_path = 'movie.mp4'
    if os.path.exists(file_path):
        with open(file_path, 'rb') as fh:
            response = HttpResponse(fh.read(), content_type="video/mp4")
            response['Content-Disposition: attachment'] = 'inline; filename=' + os.path.basename(file_path)
            return response
    raise Http404

Путь к файлу жестко запрограммирован для целей тестирования.

Все, что я прочитал, говорит мне, что это невозможно, потому что браузеры Safari и другие мобильные браузеры открывают лучший опыт, чем загрузка. Я пытался изменить типы пантомимы и другие вещи.

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Я не знаю много о питоне, но я видел, что у вас есть только одна реакция, поэтому я провел небольшое исследование, и это то, что я нашел. Нажмите на ссылку, чтобы открыть в другом окне нужно же Я знаю, что это не загрузка, но загрузка - это всегда способ использования ссылки.
Может быть, вы сможете объединить эти коды и заставить его работать.

обратите внимание, что ссылки для скачивания всегда открываются в новом окне, но автоматически закрываются.

Надеюсь, вы сможете добиться прогресса

0 голосов
/ 06 мая 2018

Ваш content-disposition должен содержать attachment, чтобы пользователь мог загрузить его, он должен выглядеть примерно так:

response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(file_path) + '.mp4'
...