Alright, finally I got it working by manually assigning file content to
uploaded_data field. Looks like store() function does not actually store
data if files are to be placed in DB rather than in filesystem.
2012. július 9., hétfő 19:32:06 UTC+2 időpontban Athelionas a következőt
írta:
>
> Ok, I read the book, but I still don't really know how this should be done.
> What I have is this table:
>
> db.define_table('files',
> Field('original_filename', 'string', required = True,notnull
> = True),
> Field('uploaded_file', 'upload', uploadfield =
> 'uploaded_data', required = True, notnull = True, requires = IS_NOT_EMPTY
> ()),
> Field('uploaded_data', 'blob', notnull = True),
> Field('created_on', 'datetime', notnull = True))
>
> and this code:
>
> db.files.insert(original_filename = upload.filename,
> uploaded_file =
> db.files.uploaded_file.store(upload.file,upload
> .filename),
> created_on = datetime.today())
>
> But this doesn't work because uploaded_data field is NULL. Shouldn't
> store() take care of that field?
> Or do I need to put file content there manually?
> Thanks in advance.
>
> 2012. július 9., hétfő 16:54:26 UTC+2 időpontban Anthony a következőt írta:
>>
>> http://web2py.com/books/default/chapter/29/6#Manual-uploads
>>
>> On Monday, July 9, 2012 10:15:27 AM UTC-4, Athelionas wrote:
>>>
>>> What is the proper way of uploading a file without SQLFORM into the
>>> following database table?
>>>
>>> db.define_table('files',
>>> Field('original_filename', 'string'),
>>> Field('file', 'upload', uploadfield='file_data'),
>>> Field('file_data', 'blob'))
>>>
>>> A simple insert won't help here so I'm sure there's some kind of trick
>>> to it which I'm unable to figure out on my own.
>>>
>>> Any help is highly appreciated!
>>>
>>