Looks like there was a bug, which has now been fixed in trunk. So, the
second version will work in the next stable release.
Anthony
On Thursday, August 15, 2013 1:26:18 AM UTC-4, at wrote:
>
>
> 2.4.5
>
> On Thursday, 15 August 2013 07:44:02 UTC+5, Anthony wrote:
>>
>> What version of web2py are you using?
>>
>> On Wednesday, August 14, 2013 9:22:57 PM UTC-4, at wrote:
>>>
>>> Thanks a lot anthony,
>>> db(db.mytable.id==24).update(file1=db.mytable.file1.store(request.vars.
>>> file1))
>>> works,
>>>
>>> whereas
>>> db(db.mytable.id==24).update(file1=request.vars.file1)
>>> gives error:
>>> <class 'gluon.contrib.pg8000.errors.ProgrammingError'> ('ERROR',
>>> '22001', 'value too long for type character varying(512)')
>>>
>>> PS. I'd replied to your post yesterday, but somehow it was not posted
>>>
>>> On Tuesday, 13 August 2013 19:19:44 UTC+5, Anthony wrote:
>>>>
>>>> On Tuesday, August 13, 2013 9:20:47 AM UTC-4, at wrote:
>>>>
>>>>>
>>>>> Here is my controller code:
>>>>> def test_upload:
>>>>> if request.vars.file1 is not None:
>>>>> result = db(db.mytable.id
>>>>> ==24).update(file1=request.vars.file1.file)
>>>>>
>>>>
>>>> request.vars.file1 is a cgi.FieldStorage object. The original filename
>>>> is therefore in request.vars.file1.filename. request.vars.file1.file is a
>>>> temporary file on the filesystem, and it does not contain the original
>>>> filename (instead, it has a temporary filename with no extension). If you
>>>> want to manually insert an uploaded file, you should pass the
>>>> cgi.FieldStorage object to the .insert() or .update() method rather than
>>>> passing only the .file object from it. So, should be:
>>>>
>>>> db(db.mytable.id==24).update(file1=request.vars.file1)
>>>>
>>>> which is equivalent to calling:
>>>>
>>>> db(db.mytable.id==24).update(file1=db.mytable.file1.store(request.vars.
>>>> file1))
>>>>
>>>> Anthony
>>>>
>>>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.