2013-06-01 3 views
2

Я добавляю изображение в хранилище данных как свойство blobproperty. Я не хочу, чтобы пользователь BlobStore, потому что я не знаю, буду ли я оставаться в GAE в будущем. Проблема в том, что я не вижу изображение. Вместо этого я вижу «сломанную иконку».Работа с графическим движком Google

Вот как я храню изображение

app = Applications() 
image = str(self.request.get("image")) 
app.img = db.Blob(image) 
app.put() 

IMG является db.BlobProperty()

Вот образ служит класс я сделал:

class ApplicationImageHandler(BaseHandler): 
    def get(self): 
     sURL = self.request.url.split("/") 
     app = Applications.get_by_id(long(sURL[-1])) 
     self.response.headers['Content-Type'] = 'image/jpeg' 
     self.response.out.write(app.img) 

Вот когда я называю это: http://localhost:9082/applications/6310509548666880

И вот как я его называю: <img src="/images/{{app.key().id()}}">

«Приложение» - это весь объект из базы данных, когда я визуализирую его в html.

Если я скопирую ссылку и вставлю ее в браузере, то у меня будет тот же «сломанный значок».

Редактировать: Я просто вижу в журнале, что у меня есть код 200 на изображении. Итак, я больше запутать Сейчас: P

INFO  2013-06-01 15:18:27,650 server.py:585] default: "GET /images/4762397176758272 HTTP/1.1" 200 10 

А вот часть формы HTML я использую, чтобы получить изображение:

<span> 
    <input type="file" name="image"> 
</span> 

ответ

1

Во-первых, попробуйте запросить изображение прямо из вашего браузера и увидеть, если она выглядит:

http://localhost:9082/images/4762397176758272 

Если это не работает, то проблема либо в вашем ApplicationImageHandler, предполагая, что server.py:585 в вашем Получ(), или это в загрузке изображения обработать. Вы уверены, что это изображение/jpeg? Вы включили enctype="multipart/form-data" в свою форму?

Кроме того, вы используете шаблоны Django или Jinja? Если вы используете Django, то {{app.key().id()}} неверен - вместо этого вы должны использовать {{app.key.id}}.

+1

спасибо. Я использую Jinja, и я уже тестировал ссылку непосредственно в моем браузере. Тот же «сломанный» значок. Проблема была в форме html. Я включаю enctype = "multipart/form-data" и теперь отлично работает. благодаря – Tasos

Смежные вопросы