Sorry, still confused. Is the example in the book incorrect then?
http://web2py.com/books/default/chapter/29/7#SQLFORM.factory
Another thing I noticed is that I can pass any string to uploadfolder
and the form will work. If the name passed isn't a valid directory, the
form still works but the uploaded file isn't stored on the server, which
happens to be my desired result in this scenario. But, it seems like it
kinda makes uploadfolder optional.
Sorry this isn't sinking in for me...
-Jim
On 1/3/2012 11:48 AM, Anthony wrote:
In DAL.Field.store(), when no uploadfolder is specified with the Field
definition, it looks for Field.db._adapter.folder (to get the
/app/databases folder). SQLFORM.factory constructs a fake db table via
DAL(None).define_table(table_name, *fields), which does not have a
db._adapter.folder.
Anthony
On Tuesday, January 3, 2012 9:23:42 AM UTC-5, Jim S wrote:
I'm still confused about the uploadfolder.
Why do I need to specify it when using SQLFORM.factory but not when
using SQLFORM.smartgrid over a table with an 'upload' field.
Why doesn't it use the default /uploads folder?
Where does the default get set?
I'm following the example as in the book on page 342. I'm running
trunk, updated this morning at 8:20 central.
-Jim
On 1/2/2012 5:18 PM, Alan Etkin wrote:
> Uploadfolder sets a custom folder instead of app/uploads. The
function
> parameters are available at API docs:
>
>
http://web2py.com/examples/static/epydoc/web2py.gluon.dal.Field-class.html
<http://web2py.com/examples/static/epydoc/web2py.gluon.dal.Field-class.html>
>
> On 2 ene, 18:34, Jim Steil<[email protected]> wrote:
>> found the solution.
>>
>> in the code below, change line
>>
>> importfile = request.vars.importFile.file
>>
>> to
>>
>> importfile = request.vars.importFile.value
>>
>> Still don't know why I need the uploadfolder, but this solved
my main issue.
>>
>> -Jim
>>
>> On 1/2/2012 12:39 PM, Jim Steil wrote:
>>
>>> Hi
>>> I have an upload field defined in a SQLFORM.factory form as
follows:
>>> def wasptime():
>>> from reports.payroll import wasptime
>>> response.title = 'WASPTime Payroll Import Conversion'
>>> form = SQLFORM.factory(
>>> Field('importFile', 'upload', label='WASPTime File',
>>> uploadfolder='c:/deleteme/payroll/test'),
>>> Field('processDate', 'date', required=True,
>>> requires=IS_DATE('%m/%d/%Y'),
>>> label='Process Date'))
>>> if form.process().accepted:
>>> importFile = request.vars.importFile.file
>>> processDate = request.vars.processDate
>>> wasptime.payrollImport(processDate, importFile,
'testfile.csv')
>>> return dict(form=form)
>>> in my wasptime.payrollImport method I am trying to read
through the
>>> lines in the uploaded file using:
>>> def payrollImport(dateWorked, f, outputFile):
>>> for line in f.readlines():
>>> ...processing takes place here for each line in the file
>>> but, I'm not getting any lines to print. Can't seem to find
the right
>>> way to handle this.
>>> In addition, why do I need to specify an uploadfolder in the
'upload'
>>> field definition in SQLFORM.factory?
>>> Thanks
>>> -Jim
>>