No, I think the book example is incorrect -- you get an error without 
specifying something for the uploadfolder, so we should fix that.

Anthony

On Tuesday, January 3, 2012 2:33:26 PM UTC-5, Jim S wrote:
>
>  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
>> >
>> > 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