[BangPypers] file save from python script

Praveen Kumar praveen at mahiti.org
Fri Nov 7 08:01:50 CET 2008


Hi First of all i would like to thank you for giving me some idea..
As Jorgen told i did in same way
Hi Jorgen
I created a python script in zope instance to upload multiple files and its
working successfully..
but its storing the file inside custom folder as we know context always
refer to current location i mean our-instance/custom but when i am giving
container['bin'] its giving me 'bin' key error. i want to save that file
inside my instance for example

myzope-instance/mydir/*<uploaded file>* is any one have any idea

*REQUEST=context.REQUEST
sentFiles = {}
for key in context.REQUEST.keys():             # getting all the ids
    if key[:5]=='file.' and key[-3:]=='.id':   # we finding id file.XXX.id
            sentFiles[REQUEST[key]]=''

for key in context.REQUEST.keys():
    if key[:5]=='file.' and key[-3:]!='.id':    #we've got a file
        #found its id and make sure file exists
        if sentFiles.has_key(REQUEST[key+'.id']) and REQUEST[key].filename:
            sentFiles[REQUEST[key+'.id']]=REQUEST[key]
        else:
            del sentFiles[REQUEST[key+'.id']]    #remove keys that dont have
files

for k in sentFiles.keys():
    **context.manage_addFile(k,sentFiles[k])*
*    container['bin'].mydir.manage_addFile(k,sentFiles[k])

return str(len(sentFiles)) + ' files has been uploaded successfully'*


On Thu, Nov 6, 2008 at 7:49 PM, Jørgen Jørgensen <gardsted at yahoo.com> wrote:

>  Hello Praween Kumar -
> I would make a pythonscript on the zope like
> 'locahost:8080/starinstance/myscript', taking 3 parameters, id, title and
> file.
> remember to give it manager proxy rights (proxy in top of python script
> edit screen, chose manager)
> script should be something like:
> """
> container['bin'].manage_addFile(id=id, title=title, file=file)
> """
> I havent tested, sorry;-), but at least the direction should be something
> like this.
> then change addfileurl to:
>
> *addfileurl='http://localhost:8080/starinstance/myscript<http://localhost:8080/starinstance/bin/manage_addFile>
> '*
>
> kind regards jorgen / denmark
>
>
> Praveen Kumar wrote:
>
> Dear all,
> I want to save the file on filebased system. i am using urllib
>
> here i tried with this code
>
> *import urllib
>
> # fill these in
> user='admin'
> password='admin1'
> addfileurl='http://localhost:8080/starinstance/bin/manage_addFile'
> useragent="upload.py/0.1"
> filename='/home/praveen/Desktop/text.jpeg'
> filetitle='a nice test picture'
>
> class MyUrlOpener(urllib.FancyURLopener):
>    def prompt_user_passwd(self, host, realm):
>         return (user,password)
>    def __init__(self, *args):
>       self.version = useragent
>       urllib.FancyURLopener.__init__(self, *args)
>
> def main():
>        # use authentication and set the user agent
>        urllib._urlopener = MyUrlOpener()
>
>        # read the contents of filename into filebody
>        f=open(filename)
>        filebody=f.read()
>        f.close
>
>        # urlencode the id, title and file
>        params = urllib.urlencode({'id': filename,
>        'title':filetitle,
>        'file':filebody})
>
>        # send the file to zope
>        f=urllib.urlopen(addfileurl, params)
>
> if __name__ == '__main__':
>    main()*
>
> when i compile this file with simple python demo.py it gives me error
> Traceback (most recent call last):
>   File "demo.py", line 36, in ?
>     main()
>   File "demo.py", line 33, in main
>     f=urllib.urlopen(addfileurl, params)
>   File "/usr/lib/python2.4/urllib.py", line 84, in urlopen
>     return opener.open(url, data)
>   File "/usr/lib/python2.4/urllib.py", line 192, in open
>     return getattr(self, name)(url, data)
>   File "/usr/lib/python2.4/urllib.py", line 272, in open_http
>     import httplib
>   File "/usr/lib/python2.4/httplib.py", line 70, in ?
>     import mimetools
>   File "/usr/lib/python2.4/mimetools.py", line 6, in ?
>     import tempfile
>   File "/usr/lib/python2.4/tempfile.py", line 33, in ?
>     from random import Random as _Random
>   File "/usr/lib/python2.4/random.py", line 43, in ?
>     from math import log as _log, exp as _exp, pi as _pi, e as _e
> ImportError: /usr/lib/python2.4/lib-dynload/math.so: undefined symbol:
> PyFPE_jbuf
>
> so i compiled with this command *python2.4 demo.py* it does not give any
> error
> but it does not give me output to when i check my directory where i am
> trying to save my jpeg file *
> http://localhost:8080/starinstance/bin/manage_addFile *there i do not find
> that file it means it is not able to store that file.
>
> i do not know what i am trying to do..could any one please give me idea how
> may i store the file on file system.
> i created a html page
>      <form name="demo" method="post" ENCTYPE="multipart/form-data"
> ACTION="">
>     <fieldset style="width:20%">
>
>         Id:<input type="text" name="title" id="title"/><br><br>
>         Name:<input type="text" name="name" id="name"/><br><br>
>         Keywords:<input type="text" name="keywords" id="keywords"/><br><br>
>         <input type="file" name="upload" id="upload"/><br><br>
>         <input type="submit" name="submit" value="Save" id="submit"/><br>
>     </fieldset>
>      </form>
> once if user select any file it should store to specific location *
> http://localhost:8080/starinstance/bin/manage_addFile
>
> *Any suggestion will be appreciable
>
> Thanks.
> --
> Praveen Kumar
> Software Engineer
> Mahiti Infotech Pvt. Ltd.
> # 33-34, Hennur Cross
> Hennur Main Road
> Bangalore, India - 560043
> Mobile:  +91 9343297314
>             +91 9739854134
> http://www.mahiti.org
>
> ------------------------------
>
> _______________________________________________
> BangPypers mailing listBangPypers at python.orghttp://mail.python.org/mailman/listinfo/bangpypers
>
>
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers
>
>


-- 
Praveen Kumar
Software Engineer
Mahiti Infotech Pvt. Ltd.
# 33-34, Hennur Cross
Hennur Main Road
Bangalore, India - 560043
Mobile:  +91 9343297314
            +91 9739854134
http://www.mahiti.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/bangpypers/attachments/20081107/baafa6c7/attachment.htm>


More information about the BangPypers mailing list