Hi,
I've had the same issue before and did it that way:
Since your object is to upload a file and make a thumbnail at the same
time, then:
1. Hide thumbnail field in a form. User will add image only and web2py
do the rest. In your controller:
fields=['Name','MainPic']
form=SQLFORM(db.yourtable, fields=fields)
2. Create function to make thumbnail and save it into database. This
function will be called just after the form will be accepted. In your
controller:
def makeThumbnail(ImageID):
try: thisImage=db(db.yourtable.id==ImageID).select()[0]
except: return
im=Image.open(request.folder + 'uploads/' + thisImage.MainPic)
im.thumbnail((200,150),Image.ANTIALIAS)
thumbName='Images.ThumbPic.%s.jpg' % (uuid.uuid4())
im.save(request.folder + 'uploads/' + thumbName,'jpeg')
thisImage.update_record(Thumbnail=thumbName)
return
3. Call this function. In your controller:
fields=['Name','MainPic']
form=SQLFORM(db.yourtable, fields=fields)
if form.accepts(request.vars, session):
#form.vars.id is a id field of new record just created
makeThumbnail(form.vars.id)
4. Do not forget to import correct modules in your controller:
from PIL import Image
import uuid
This works for me,
regards,
Lukasz
On 22 Lut, 01:26, villas <[email protected]> wrote:
> @MrFreeze Thanks for your suggestion, but unless Web2py allocates the
> filename then the default download action will not work.
> I finally got it working after eventually finding this snippet:
>
> >>> db.yourtable.insert(yourfield=db.yourtable.yourfield.store(open(filename,'rb')))
>
> My solution is to save the thumbnail to a temp.jpg file and then use
> the 'store' function to slot it into the system. It's probably a long
> way around, but it worked, after one last obstacle...
>
> ---------------------
> @Massimo. Please take a look at sql.py 2611, this code:
>
> def store(self, file, filename=None, path=None):
> if not filename:
> filename = file.filename
>
> If you do not supply a filename, you get an exception:
> <AttributeError: 'file' object has no attribute 'filename'.>
> Looks like a bug?
--
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en.