Should I submit a ticket on it, or is this email exchange enough to get
it fixed in the book?
What are your thoughts on the bogus directory name being allowed and
then blindly not saving the file? Seems to me that this could be an
issue as well.
-Jim
On 1/3/2012 1:42 PM, Anthony wrote:
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
<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
>>