db.define_table("fileobject",
Field("filename","string",length=50,readable=False,writable=False),
Field("upload","upload",uploadfield="object_data"),
Field("object_type","string",length=20,readable=False,writable=False),
Field("object_data","blob"),
Field("owner","reference auth_user",default=auth.user_id,readable=False,writable=False),
Field("saved","datetime",default=datetime.now(),readable=False,writable=False),
Field("state","string",length=16,readable=False,writable=False),
migrate=settings.migrate)
def index():
form=SQLFORM(db.fileobject)
if request.vars.upload:
form.vars.filename = request.vars.upload.filename
if form.process().accepted:
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
return dict(form=form)if request.vars.upload and request.vars.filename:
request.vars.upload.filename = request.vars.filename
form = SQLFORM(db.fileobject)if request.vars.upload:
db.fileobject.filename.default = request.vars.upload.filename
form = SQLFORM(db.fileobject)Hi Anthony --I want the opposite of this -- I want the original text filename, not a replacement. The book example I followed did not work.I found at least one problem -- the test "if request.vars.upload:" does not work. Even though the upload field has a valid filename, the FieldStorage object returns "False" for the test. In the book the recommended test was "if request.vars.upload != None" but that was found to have a walkback if the submit button was pressed without choosing a filename, as request.vars.upload returns an empty string in that case.
-- Joe
On Friday, December 28, 2012 2:18:24 AM UTC-8, Anthony wrote:
if request.vars.upload!=None and request.vars.upload!='':I'm not sure why this is difficult, but I see many posts about this when I search, yet none exactly work for me. This seems like it should be easy but is surprisingly difficult in web2py.
def index():
form=SQLFORM(db.fileobject)
if form.process().accepted:
form.vars.filename = request.vars.theupload.filename
db.fileobject[form.vars.id].update_record(filename=form.vars.filename)
elif form.errors:
response.flash = 'form has errors'
return dict(form=form)