2013-03-08 59 views
1

您好,我在打开web2py中的图像文件时遇到了问题。我不知道我是否只是犯了一个简单的错误,或者说它会超过这个。我认为我正在从网上和本网站上看例子。我的继承人在型号代码:无法在图像中读取web2py

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

我认为错误意味着在数据库中的图片,但它不能检索图像,并打开它,或者我完全错了,请,如果任何人可以传播一些光在解决方案,我将非常感谢

+0

什么是Image.open()?请注意,'db.image.picture'只是一个DAL Field对象 - 它不是一个图像或文件。 – Anthony 2013-03-08 23:25:53

+0

open是图像模块类中的一个函数。所以db.image.picture是DAL字段对象而不是图像。所以我怎么能把一个图像在数据库中,然后打开该数据库中的具体形象多数民众赞成 – 2013-03-08 23:41:52

回答

1

参数传递给Image.open,db.image.picture,是一个Field对象,而不是填入表格中的值。您可能想要:

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

编辑:更新为使用图片文件的完整路径。然而,正如安东尼在下面评论中指出的那样,这不适用于用于在原始问题中存储图像的blob字段(在编辑之前,如下面的评论中所述)。如描述here所述使用retrieve将提供文件数据。

+0

谢谢先生试图帮助,当我做了你建议它给了我这个错误 [Errno 2]没有这样的文件或目录:'image.picture.b40612132e08cda1.54756c6970732e6a7067.jpg'现在我认为它不知道图片的位置 – 2013-03-08 23:35:02

+0

@CalvinJones这些文件本身位于应用程序的'uploads'文件夹中。请参阅[this](http://web2py.com/books/default/chapter/29/07#SQLFORM-and-uploads)文档。所以你必须在文件名之前添加上传文件夹的路径。我已经更新了我的答案。你可以尝试更新的行吗? – crayzeewulf 2013-03-08 23:42:37

+1

不是,在这种情况下,文件不在上传文件夹中的文件系统上,因为指定的blob字段将文件存储在数据库中。 – Anthony 2013-03-08 23:49:20