使用google app engin提供图像服务

2024-05-15 20:58:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据存储中添加一个图像作为blobproperty。我不想使用BlobStore,因为我不知道将来是否会继续使用GAE。问题是我看不见图像。我看到的是“破碎的图标”。你知道吗

下面是我如何存储图像

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

img是一个数据库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()}}">

“app”是在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>

Tags: 图像imageselfid数据库appimgget
1条回答
网友
1楼 · 发布于 2024-05-15 20:58:20

首先,尝试直接从浏览器请求图像,看看它是否正确:

http://localhost:9082/images/4762397176758272

如果这不起作用,那么问题要么在ApplicationImageHandler中,假设服务器.py:585在get()方法中,或者在图像上载过程中。你确定是图像/jpeg吗?你的表格里有enctype="multipart/form-data"吗?你知道吗

另外,您使用的是Django还是Jinja模板?如果您使用的是Django,那么{{app.key().id()}}是不正确的,您应该改用{{app.key.id}}。你知道吗

相关问题 更多 >