Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 16, 2010 16:13:32

Paher
От:
Зарегистрирован: 2009-08-11
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

возрат файла zip в ответе cgi

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

Нужно возвращать из cgi скрипта zip-файл. Делаю так:

print ‘Content-Type: application/zip’
print ‘Content-Disposition: attachment; name=“1.zip”\n’
print open('1.zip', ‘rb’).read()

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



Офлайн

#2 Апрель 16, 2010 18:20:04

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

возрат файла zip в ответе cgi

Офлайн

#3 Апрель 17, 2010 00:29:12

Paher
От:
Зарегистрирован: 2009-08-11
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

возрат файла zip в ответе cgi

Предвидел такой совет. Но, во-первых, без фреймворка весь код занимает 5 строчек, и незачем перегружать фреймворком, дальнейшее развитие не планируется, а во-вторых, чисто из интереса хотелось бы знать, в чем же загвоздка.

P.S. используя wsgi могу возвращать нормальные зипы, так что интерес скорее спортивный



Офлайн

#4 Апрель 17, 2010 09:06:59

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

возрат файла zip в ответе cgi

Paher
Но, во-первых, без фреймворка весь код занимает 5 строчек
когда будет работать, будет занимать 10..30 строк ;) , а с фреймворком в “одну” строку

возможно сам файл нужно преобразовать, например в base64, при этом в шапке нужно это указать

Офлайн

#5 Апрель 18, 2010 13:56:42

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

возрат файла zip в ответе cgi

Под какой os вы это делаете? Если в windows, вы правы, поток идет не в бинарном режиме. Как исправить, уже обсуждалось, воспользуйтесь поиском.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version