我正在尝试使用 tornado 和 pil 和 mongodb 来做到这一点。
avat = self.request.files['avatar'][0]["body"]
nomfich = self.request.files['avatar'][0]["filename"]
try:
image = Image.open(StringIO.StringIO(buf=avat))
size = image.size
type = image.format
avatar = r"/profile-images/{0}/{1}".format(pseudo, nomfich)
except IOError:
self.redirect("/erreur-im")
和数据库代码:
user={
"pseudo": pseudo,
"password":password,
"email":email,
"tel":tel,
"commune":commune,
"statut":statut,
"nom":nom,
"prenom":prenom,
"daten":daten,
"sexe":sexe,
"avatar":avatar
}
self.db.essog.insert(user)
它工作正常,“头像”被保存,但没有图像,它只保存一个名字!
我的问题是:
- 要了解数据库如何处理图片,我必须制作 image.save(path, format),但路径是普通系统路径(windows 还是 linux)的路径?
- 配置文件很简单,我将图片上传限制为500ko,而mongodb中的文档为16mb,因此该文档将处理整个配置文件,但是当包含图片时,即使对于小文档,我也必须使用gridFS吗?关键问题是图片保存的路径,卡住了,这是我第一次处理数据库,所以很抱歉这个问题。