2011-06-13 15 views

cevap

15

Olduğu gibi veritabanında görüntüyü saklamaz modeliniz - bunun yerine, veritabanında depolanan yeni bir dosya adıyla, dosya sistemi üzerinde görüntüyü depolar (içinde 'resim' alanı). Eğer veritabanında resmin kendisini saklamak istiyorsanız, aşağıdaki kullanın:

db.define_table('images', 
    Field('picture', 'upload', uploadfield='picture_file') 
    Field('picture_file', 'blob')) 

Eğer dosya sistemi üzerinde veya veritabanında görüntüleri depolamak olsun, bunları almak için aynı yöntemi kullanabilirsiniz. Sadece böyle bir şey yapmak

def download(): 
    return response.download(request, db) 

bir görüntü almak için:: 'hoş geldiniz' iskele uygulaması default.py denetleyicisi aşağıdaki download() eylemi içermektedir picture_name 'picture saklanan değeri olan

<img src="{{=URL('default', 'download', args=picture_name)}}" /> 

'almak istediğiniz belirli görüntü için' images 'alanının tablosu.

Daha fazla ayrıntı için bkz. here ve here.

Daha fazla yardıma ihtiyacınız varsa, mailing list numaralı telefonu sormayı deneyin. kontrolörleri ise

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

:

def somefunction(): 
    pic = db(db.images).select().first().picture #select first picture 
    return dict(pic=pic) 

Ve varsayılan modellerde

: Eğer dosya olarak resimlerini yükleme web2py varsayılan yolu kullanırsanız

+0

Bilgi için Thx ... hayır demek gerçekten thx ... – Florin

+0

Merhaba Anthony, Anahtar/Değer Nosql deposunda "blob" nasıl kaydedebilirim? Ayrıntılar istemiyorum, sadece yapmanın bir yolu. Şimdiden teşekkürler! – Locke

+1

DAL'i kullanmak istersem, desteklenen tek anahtar/değer deposunun Google App Engine veri deposu olduğuna inanıyorum ve bu durumda, DAL dosyaları otomatik olarak veri deposunda saklar (açık bir şekilde oluşturmak zorunda bile kalmazsınız). ayrı blob alanını veya yükleme alanı argümanını belirtin).DAL ayrıca MongoDB ve CouchDB için kısmi desteğe sahiptir, ancak bunlar belge veri tabanlarıdır ve DAL'in dosyaları depolamayı destekleyip desteklemediğinden emin değilim. – Anthony

2

Alternatif olarak, kullanabilirsiniz /somefunction.html görünüm:

{{extend 'layout.html'}} 
<img src="{{=URL('download', args=pic)}}" /> 

Bu sorunun orijinal sorudan sonra bir süre olduğunu biliyorum, ancak bir an beni anlamaya çalışırken faydalı olabileceğini düşündüm.

İlgili konular