Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2010 12:30:47

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

Доброго времени суток.
Пытаюсь сделать сохранение файла пользователем

f = open('/tmp/current.log', 'r')
dt = File(f)
response = HttpResponse(dt.read(), mimetype='text/plain')
response['Content-Disposition'] = 'attachment; filename=system.log'
return response
Но отдается не весь фаел, скачивается, то 700 строк, то 70000.
Если делать так
filename = '/tmp/current.log'
wrapper = FileWrapper(file(filename))
response = HttpResponse(wrapper, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename=system.log'
response['Content-Length'] = os.path.getsize(filename)
return response
то сохраняется пустой фаел, а если убрать строку определяющую Content-Disposition, то выкачивается все, но в браузер.



Офлайн

#2 Авг. 31, 2010 17:31:06

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

Забавно, работает второй вариант если не указывать Content-Length
Почему именно так не понятно =|



Офлайн

#3 Авг. 31, 2010 20:30:24

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

Что такие File и FileWrapper? Зачем вы их используете?



Офлайн

#4 Авг. 31, 2010 22:19:16

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

Daevaorn
Что такие File и FileWrapper? Зачем вы их используете?
FileWrapper
File

Затем что нашел их, а как делать по другому не знал :)



Офлайн

#5 Сен. 3, 2010 23:59:15

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

А чем тебя не устраивает upload файлов через пост запрос в <form>
Зачем городить непонятные тебе враперы смысл которых тебе непонятен.
Попробуй проще сделать безвраперов

Офлайн

#6 Сен. 4, 2010 19:42:50

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

romankrv
А чем тебя не устраивает upload файлов через пост запрос в <form>
Рома, ты вообще понял в чем вопрос или нет?



Офлайн

#7 Сен. 5, 2010 13:14:17

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Выгрузка/скачивание файла с сайта

ex
Забавно, работает второй вариант если не указывать Content-Length
Почему именно так не понятно
Отчего же. ЕМНИП атачменты идут через urlencoding в обязательном порядке. Так что если у Вас в логе есть пробелы, символы возврата каретки или не ascii символы - то длина будет не той, что в файле на диске. Я обычно никогда руками не выставляю ‘Content-Length’, так как контейнер/фреймворк его сами могут расчитать, причем с учетом всех ньюансов.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version