Hi all, 
it seems to me that SQLFORM.factory doesn't honor the uploadseparate option 
because I'am not able to delete the uploaded file with SQLFORM.factory

form = SQLFORM.factory(db.club, db.cities, _class='well', 
                       formstyle='bootstrap', showid= False,
                       upload=URL('default', 'download'), uploadfolder=
request.folder+'uploads/pictures',  
                       uploadseparate=True, autodelete=True, table_name=
'club'  )

 

The error:
Enter code here...2012-12-26 19:38:07,728 - web2py - ERROR - Traceback (most 
recent call last):
  File "/home/paolo/Dropbox/git/web2py/gluon/restricted.py", line 212, 
inrestricted
    exec ccode in environment
  File 
"/home/paolo/Dropbox/git/web2py/applications/bikend/controllers/club.py",line 
123, in <module>
  File "/home/paolo/Dropbox/git/web2py/gluon/globals.py", line 193, in 
<lambda>
    self._caller = lambda f: f()
  File "/home/paolo/Dropbox/git/web2py/gluon/tools.py", line 2935, in f
    return action(*a, **b)
  File 
"/home/paolo/Dropbox/git/web2py/applications/bikend/controllers/club.py",line 
35, in modal
    d = {'form':club_form(c_id=club_id)}
  File 
"/home/paolo/Dropbox/git/web2py/applications/bikend/controllers/club.py",line 
103, in club_form
    if form.process(dbio=False).accepted:
  File "/home/paolo/Dropbox/git/web2py/gluon/html.py", line 2179, in process
    self.validate(**kwargs)
  File "/home/paolo/Dropbox/git/web2py/gluon/html.py", line 2118, invalidate
    if self.accepts(**kwargs):
  File "/home/paolo/Dropbox/git/web2py/gluon/sqlhtml.py", line 1408, inaccepts
    source_file = open(f, 'rb')
IOError: [Errno 2] No such file or directory: 
'/home/paolo/Dropbox/git/web2py/applications/bikend/club.picture.a4bd97789f289bcc.6c6f676f322e706e67.png'

It tries to remove the file in the wrong directory. The right one would be:
/home/paolo/Dropbox/git/web2py/applications/bikend/uploads/pictures/club.
picture/a4

The field is defined as follow:

Field("picture", "upload", 
uploadfolder=request.folder+'uploads/pictures',uploadseparate
=True, autodelete=True, requires=[IS_NOT_EMPTY(), IS_IMAGE(),IS_UPLOAD_FILENAME
(extension='jpg|jpeg|png'),IS_IMAGE(extensions=('jpeg', 'png'))]),

what should I have to do?

Paolo



-- 



Reply via email to