【发布时间】:2010-11-27 10:03:51
【问题描述】:
我知道我可以通过使用 POST 到 App Engine 的表单来接受图片上传,如下所示:
<form action="/upload_received" enctype="multipart/form-data" method="post">
<div><input type="file" name="img"/></div>
<div><input type="submit" value="Upload Image"></div>
</form>
然后在 Python 代码中我可以做类似的事情
image = self.request.get("img")
但是,当稍后将其显示给用户时,我如何才能确定该图像的内容类型应该是什么?似乎最可靠的方法是从图像数据本身中找出这一点,但如何轻松获得呢?我在 google.appengine.api 图像包中没有看到任何合适的东西。
我应该只在自己的代码中寻找神奇的图像标题,还是在某个地方已经有方法?
编辑:
这是我最终使用的简单解决方案,似乎对我的目的来说工作得很好,并且避免了将图像类型作为单独的字段存储在数据存储中:
# Given an image, returns the mime type or None if could not detect.
def detect_mime_from_image_data(self, image):
if image[1:4] == 'PNG': return 'image/png'
if image[0:3] == 'GIF': return 'image/gif'
if image[6:10] == 'JFIF': return 'image/jpeg'
return None
【问题讨论】:
标签: python image google-app-engine upload multipart