This is now fixed in trunk. thanks.

On Feb 24, 3:07 pm, Rowdy <da...@fielden.com.au> wrote:
> mdipierro wrote:
> > You can do it both ways.
>
> > If you choose to retain the original names you will have to create
> > your own "download" action.
>
> > def mydownload(): return
> > response.stream(open(os.path.join(request.folder,'upload','/'.join(request.args)),'rb'))
>
> > You lose the ability to enforce granular access control.
>
> > I would follow Lukasz' advice and do from a web2py script
>
> > import glob
> > for filename in glob.glob('/path/to/files/*'):
>
> > db.yourtable.insert(yourfield=db.yourtable.yourfield.store(open(filename,'rb')))
>
> (Third try - these posts just seem to keep disappearing into the ether.
> Apologies if the posts sent a couple of days ago suddenly turn up too.)
>
> Excellent suggestions, thank you Lukasz and Massimo.
>
> I am constantly amazed at how easy web2py makes a lot of things.
>
> But ... when I called store() as in Massimo's example, it returned:
>
> Traceback (most recent call last):
>    File "/home/rowdy/web2py/gluon/restricted.py", line 173, in restricted
>      exec ccode in environment
>    File "/home/rowdy/web2py/applications/webacc2/controllers/system.py",
> line 116, in <module>
>    File "/home/rowdy/web2py/gluon/globals.py", line 96, in <lambda>
>      self._caller = lambda f: f()
>    File "/home/rowdy/web2py/gluon/tools.py", line 1877, in f
>      return action(*a, **b)
>    File "/home/rowdy/web2py/applications/webacc2/controllers/system.py",
> line 111, in attachments
>      db.attachment.insert(incident = incident_id, description =
> 'Migrated file', file = db.attachment.file.store(open(name, 'rb')),
> original_filename = originalName)
>    File "/home/rowdy/web2py/gluon/sql.py", line 2613, in store
>      filename = file.filename
> AttributeError: 'file' object has no attribute 'filename'
>
> The first couple of lines in gluon/sql.py of store() are:
>
>      def store(self, file, filename=None, path=None):
>          if not filename:
>              filename = file.filename
>
> The file object does not seem to have a filename property.  It does have
> a name property.  Changing the second line as:
>
>      def store(self, file, filename=None, path=None):
>          if not filename:
>              filename = file.name
>
> seems to work.
>
> Rowdy

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to