Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2012 01:15:06

drandrey
Зарегистрирован: 2012-05-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачивание файлов на Pyramid

Доброго времени суток!

Собственно вопрос такой: как организовать скачивание файлов с сайта на Pyramid? Немного порылся на просторах интернета, ничего путного найти не смог((

Офлайн

#2 Окт. 21, 2012 10:07:53

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

Скачивание файлов на Pyramid

Так как пирамида - это надстройка над webob, то можно воспользоваться, например, таким способом - http://docs.webob.org/en/latest/file-example.html

Ну или если хочется с “x-accel-redirect”/“x-sendfile” то таким способом - https://github.com/gawel/wsgithumb/blob/master/wsgithumb/utils.py



Офлайн

#3 Окт. 22, 2012 19:46:40

drandrey
Зарегистрирован: 2012-05-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачивание файлов на Pyramid

Спасибо!

Офлайн

#4 Окт. 27, 2012 17:56:45

drandrey
Зарегистрирован: 2012-05-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачивание файлов на Pyramid

При скачивании передается файл размером 0 кбайт и неправильным названием. Как я понимаю, надо настроить сервер. Сейчас пользуюсь сервером Waitress. Не подскажете, как его “донастроить”? Или лучше перейти на более сильные серверы?

Офлайн

#5 Окт. 29, 2012 06:46:12

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

Скачивание файлов на Pyramid

Waitress скорее всего не при чем. Надо смотреть тело ответа сервера. Для лечения названия попробуйте приписать заголовок ответа ‘Content-Disposition’. Cделать это можно примерно так:

from urllib import quote
        res.headers['Content-Disposition'] = 'attachment; filename=%s' \
                                    % quote(filename.encode('utf-8'))

здесь res - экземпляр ответа.

А вот с размером 0 кбайт что-то определенное сказать трудно - нужно больше информации.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version