This is a bit more complex than it seems because upload expects a ci.FieldStorage object so the validator __call__ should return a cgi.FieldStoarge.
On Sep 1, 3:50 pm, kachna <petr.marti...@gmail.com> wrote: > Hi, > I am trying to write validator to resize my image before storing in DB > field. > > class RESIZE_IMG(object): > def __init__(self, isThumb=False, error_message='unresizable'): > (self.isThumb, self.error_message) = (isThumb, error_message) > > def __call__(self, value): > import Image > > try: > > im = Image.open(value.file) > # This print is OK. PIL recognize uploaded image > print im.size, im.format > > im.resize((100, 100)) > value.file.seek(0) > im.save(value.file, im.format) > return (value, None) > except Exception as e: > print 'resize exception:', e > return (value, self.error_message) > > Script runs well but data in DB field is no image data. It can' t be > displayed by download function from default controller too. > > Thanks for help.