2013-03-08 65 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