【问题标题】:Can't read in image web2py无法读取图像 web2py
【发布时间】:2013-03-09 10:55:18
【问题描述】:

您好,我在 web2py 中打开图像文件时遇到问题。我不知道我是否只是犯了一个简单的错误,或者它不止于此。我认为我在查看网络和本网站上的示例时做对了。这是我在模型中的代码:

db.define_table('image', 
                 Field('picture', 'upload'))

我认为该错误意味着数据库中有一张图片,但它无法检索该图片并打开它,或者我完全错了,请如果有人能对解决方案有所了解,我将非常感激

【问题讨论】:

  • 什么是Image.open()?注意,db.image.picture 只是一个 DAL 字段对象——它不是图像或文件。
  • open 是图像模块类中的一个函数。所以 db.image.picture 是一个 DAL 字段对象而不是图像。那么如何将图像放入数据库中然后打开数据库中的特定图像

标签: python web2py


【解决方案1】:

传递给Image.open 的参数db.image.pictureField 对象,而不是填写到表单中的值。你可能想要:

pic = Image.open(os.path.join(request.folder,'uploads',form.vars.picture))

编辑:更新为使用图片文件的完整路径。但是,正如 Anthony 在下面的 cmets 中所指出的,这不适用于用于在原始问题中存储图像的 blob 字段(在按照下面的 cmets 进行编辑之前)。如here 所述,使用retrieve 将提供文件数据。

【讨论】:

  • 感谢您先生在我按照您的建议提供帮助时尝试提供帮助.54756c6970732e6a7067.jpg' 现在我想它不知道图片在哪里
  • @CalvinJones 文件本身位于应用程序的uploads 文件夹中。请参阅this 文档。因此,您必须在文件名之前添加上传文件夹的路径。我已经更新了我的答案。你能试试更新的线路吗?
  • 不,在这种情况下,文件不在上传文件夹中的文件系统上,因为指定了一个 blob 字段来将文件存储在数据库中。
  • 好吧,我可以把blob部分拿出来让它更容易
  • @Anthony 观察力不错。我猜 OP 需要使用 retrieve 来获取文件数据。 OP,请尝试不使用blob,看看是否适合您。
猜你喜欢
  • 2010-12-04
  • 2020-12-05
  • 2015-09-13
  • 2021-05-15
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多