Sorry got confused.
Made it work !
Here is the final code :
dal_db.UserImageStore.insert(profile_image =
dal_db.UserImageStore.profile_image.store(profile_image,<name you want to
give>),
profile_blob = profile_image,
upload_ts = datetime.now(),
change_ts = datetime.now()
)
Thanks Anthony !
On Monday, June 18, 2012 8:28:25 PM UTC+5:30, Sushant Taneja wrote:
>
> Will this work on AppEngine ? Since there is no filesystem
>
> The code for manual uploads is :
>
> stream = open(filename,'rb')
>
> Will this not give error since it will not be able to find the file ?
>
> On Monday, June 18, 2012 6:52:02 PM UTC+5:30, Anthony wrote:
>>
>> and the my show_image function is :
>>>
>>> def show_image():
>>> return response.download(request,dal_db)
>>>
>>
>> That's the problem -- response.download() calls dal.Field.retrieve(),
>> which assumes the filename is encoded via base64.b16encode (i.e., it
>> assumes the file was stored using dal.Field.store(), which encodes the
>> filename). Instead of manually creating the filename, you could use this
>> procedure: http://web2py.com/books/default/chapter/29/6#Manual-uploads.
>> Just make the filename exactly what you want the downloaded filename to be
>> (including the extension), and do the insert into the upload field -- it
>> should automatically create the encoded name, store the name in the upload
>> field, and store the image in the blob field. In this case, the image
>> should be a file stream, and I think fetch will return a string, so you
>> might need to do:
>>
>> import cStringIO
>> profile_image = cStringIO.StringIO(result.content)
>>
>> Anthony
>>
>