In gluon/sqlhtml.py there is this logic: elif field.type == 'upload': f = self.vars[fieldname] fd = '%s__delete' % fieldname ... newfilename = field.store(source_file, original_filename, field.uploadfolder)
can you add some print statements and help us debug. How it is possible that source_file is None? What is the value of the variable f when this happens. it should accept any character in the original filename. If it does not, where does it fail? Please open a ticket and link this thread so the issue gets tracked. On Tuesday, 24 July 2012 02:51:50 UTC-5, Annet wrote: > > In a table I defined the following field: > > Field('photoFile',type='upload',autodelete=True), > > with the following validator: > > db.Person.photoFile.requires=IS_EMPTY_OR(IS_IMAGE(extensions=('gif','jpg','jpeg','png'),maxsize=(72,72)),IS_LENGTH(36*1024,error_message='file > > size exceeds 36 KB')) > > When I insert a person without a photoFile I get the following error: > > > Traceback (most recent call last): > File "/Library/Python/2.5/site-packages/web2py/gluon/restricted.py", line > 205, in restricted > exec ccode in environment > File > "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/controllers/appadmin.py" > > <http://127.0.0.1:8000/admin/default/edit/bootstrap/controllers/appadmin.py>, > line 433, in <module> > File "/Library/Python/2.5/site-packages/web2py/gluon/globals.py", line 173, > in <lambda> > self._caller = lambda f: f() > File > "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/controllers/appadmin.py" > > <http://127.0.0.1:8000/admin/default/edit/bootstrap/controllers/appadmin.py>, > line 128, in insert > if form.accepts(request.vars, session): > File "/Library/Python/2.5/site-packages/web2py/gluon/sqlhtml.py", line > 1207, in accepts > newfilename = field.store(source_file, original_filename, > field.uploadfolder) > UnboundLocalError: local variable 'source_file' referenced before assignment > > > This is in web2py version 1.99.7 > > Kind regards, > > Annet > > > --