Найти - Пользователи
Полная версия: Отдать пользователю файл с сервера
Начало » Django » Отдать пользователю файл с сервера
1
SoT
Файл хранится на сервере медиа. Можно ли в response подставить сам файл (или путь к нему), чтобы при клике на кнопку django передавал данные в функцию views, а она сразу возвращала файл а не делала что то подобное :
with open(path,'r') as fd:
    mtype = magic.from_file(path,True) # можно и без mimetypes, но позволяет сразу открывать файл в нужной программу
    response = HttpResponse(fd,content_type=mtype)
    response['Content-Disposition'] = 'attachment; filename="%s"' % # here is name of file
return response

Т.е. отдать файл без open?
как в отправке письма можно воспользоваться attach_file и отдать файл целиком а не отдавать его контент через обычный attach
P.s. извиняюсь если ответ находится в документации но я его не нашёл. Если всё очевидно то киньте ссылку на конкретную страницу.
alrusdi
Можно отдать файл сервером, а не приложением. Для этого пользуются заголовком “X-Accel-Redirect”.
Вот здесь подробно разжевано: http://www.wellfireinteractive.com/blog/nginx-django-x-accel-redirects/
Но там есть масса нюансов, которые стоит учесть - например поддержка докачки итп:
Довольно много из них у Сагалаева раскрыто: http://softwaremaniacs.org/blog/2006/04/18/controlled-download/
SoT
Спасибо огромное ! очень исчерпывающе. И отдельное спасио за вторую ссылку .
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB