file.read () в appengine возвращает ненужные символы - PullRequest
1 голос
/ 27 января 2011

Я использую следующий код:

class Image(webapp.RequestHandler):
    def get(self, id):
        path = os.path.join(os.path.dirname(__file__), 'fcimages/%s.png' % id)
        self.response.headers['Content-Type'] = 'image/png'
        print file(path,'rb').read()

И он отлично работает локально (то есть возвращает изображение), но когда я использую его на живом сервере, я получаю мусор Вы можете увидеть вывод здесь: http://1.ge0.co/fc/1.png

Что я делаю не так?

Спасибо!

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

Ответы [ 2 ]

5 голосов
/ 27 января 2011

Мне удалось это исправить в конце концов, я думаю, что проблема заключалась в комбинации self.response и print.Вот код, который работает:

class Image(webapp.RequestHandler):
    def get(self, id):
        path = os.path.join(os.path.dirname(__file__), 'fcimages/%s.png' % id)
        self.response.headers['Content-Type'] = "image/png"
        self.response.out.write(file(path, 'rb').read())
0 голосов
/ 27 января 2011

Похоже, что Content-Type установлен неправильно

Content-Length:72643
Content-Type:text/html
Date:Thu, 27 Jan 2011 13:01:57 GMT
Server:Google Frontend

Это объясняет, почему вы видите содержимое файла вместо отображаемого изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...