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

