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
> >
> > 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
> >>
>
>

Reply via email to