我在数据存储区中添加一个图像作为blobproperty。我不想使用BlobStore,因为我不知道将来是否会继续使用GAE。问题是我看不到图像。我看到了“破碎的图标”。
以下是我存储图像的方式
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中渲染它时,“app”是数据库中的整个实体。
如果我复制链接并将其粘贴到浏览器中,那么我将拥有相同的“损坏图标”。
编辑:我只是在日志中看到我在图片上有代码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>
答案 0 :(得分:1)
首先,尝试直接从浏览器请求图片,看看它是否正确:
http://localhost:9082/images/4762397176758272
如果这不起作用,则问题出在ApplicationImageHandler中,假设server.py:585在get()方法中,或者在图像上载过程中。你确定它是一个图像/ jpeg?您是否在表单中加入了enctype="multipart/form-data"
?
另外,您使用的是Django还是Jinja模板?如果您使用的是Django,则{{app.key().id()}}
不正确 - 您应该使用{{app.key.id}}
代替。