Here's a working example.
Flex:
------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>

    <mx:Button label="Upload File..." click="uploadFile()"/>

    <mx:Script>
        <![CDATA[

            import flash.events.*;
            import flash.net.*;
            import mx.controls.Alert;

            private var uploadURL:String = "
http://www.server.com/upload.py/upload";;
            private var urlRequest:URLRequest = new URLRequest(uploadURL);

            private var fileUpload:FileReference = new FileReference;

            private function uploadFile():void
            {
                fileUpload.addEventListener(Event.SELECT, onFileSelected);
                fileUpload.addEventListener(Event.COMPLETE,
onUploadComplete);
                fileUpload.browse();
            }

            private function onFileSelected(evt:Event):void
            {
                fileUpload.upload(urlRequest);
            }

            private function onUploadComplete(evt:Event):void
            {
                Alert.show("upload complete");
            }
        ]]>
    </mx:Script>

</mx:Application>
------------------------------------------------------


web.py:
------------------------------------------------------
#!/usr/local/bin/python-web
import web

urls = ('/upload', 'Upload')

app = web.application(urls, globals())

class Upload:
    def POST(self):
        input = web.input(Filedata={})
        file = open("uploaded_files/" + input["Filedata"].filename, "w")
        file.write(input["Filedata"].file.read())

if __name__ == "__main__":
    app.run()
--------------------------------------------------

HTH,
Ben

2009/1/13 hhsuper <[email protected]>

> yes it's adobe's flex, but my side side(web.py) with html upload is ok, and
> the client code(flex) work with django (and other server side) is ok, that
> confused me, do you mind provider me a simple worked sample?
>
> 2009/1/13 Ben Corneau <[email protected]>
>
>  I don't know what to make of your error, but I do have file upload using
>> flex working. I'm assuming by flex you mean Adobe Flex.
>>
>> The following web.py code works for me.
>>
>> urls = ('/upload', 'Upload')
>>
>> class Upload:
>>     def POST(self):
>>
>>         input = web.input(Filedata={})
>>         file = open("images/" + input["Filedata"].filename, "w")
>>         file.write(input["Filedata"].file.read())
>>
>> -Ben
>>
>> hhsuper wrote:
>>
>> i have a simple test, web.py impelement the file upload func, and tested
>> with the html page ok, but when i upload the file with
>>  flex (in the same site, actual in the same html page ), there is some
>> error, follow
>>
>> beside, the same flex code used for django app is ok(i have a simple test)
>>
>> Traceback (most recent call last):
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 211, in process
>>     return self.handle()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 201, in handle
>>     return self._delegate(fn, self.fvars, args)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 385, in _delegate
>>     return handle_class(cls)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 360, in handle_class
>>     return tocall(*args)
>>   File "D:\Projects\truman2\app\controllers\scene.py", line 159, in POST
>>     i = web.input(photo = {})
>>   File
>> "C:\Python25\lib\site-packages\web.py-0.31-py2.5.egg\web\webapi.py", line
>>  208, in input
>>     a = cgi.FieldStorage(fp=fp, environ=e, keep_blank_values=1)
>>   File "C:\Python25\lib\cgi.py", line 534, in __init__
>>     self.read_multi(environ, keep_blank_values, strict_parsing)
>>   File "C:\Python25\lib\cgi.py", line 659, in read_multi
>>     environ, keep_blank_values, strict_parsing)
>>   File "C:\Python25\lib\cgi.py", line 536, in __init__
>>     self.read_single()
>>   File "C:\Python25\lib\cgi.py", line 669, in read_single
>>     self.read_lines()
>>   File "C:\Python25\lib\cgi.py", line 691, in read_lines
>>     self.read_lines_to_outerboundary()
>>   File "C:\Python25\lib\cgi.py", line 719, in read_lines_to_outerboundary
>>     line = self.fp.readline(1<<16)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\wsgiserver\__ini
>> t__.py", line 206, in readline
>>     data = self.rfile.readline(size)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\wsgiserver\__ini
>> t__.py", line 1024, in readline
>>     data = self.recv(self._rbufsize)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\wsgiserver\__ini
>> t__.py", line 925, in recv
>>     return self._sock.recv(size)
>> timeout: timed out
>>
>> Traceback (most recent call last):
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 209, in process
>>     return p(lambda: process(processors))
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 552, in processor
>>     return handler()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 209, in <lambda>
>>     return p(lambda: process(processors))
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 216, in process
>>     raise self.internalerror()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 449, in internalerror
>>     return debugerror.debugerror()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\debugerror.py",
>> line 299, in debugerror
>>     return web._InternalError(djangoerror())
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\debugerror.py",
>> line 289, in djangoerror
>>     return t(exception_type, exception_value, frames)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\template.py", li
>> ne 850, in __call__
>>     return BaseTemplate.__call__(self, *a, **kw)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\template.py", li
>> ne 768, in __call__
>>     return self._join_output(out)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\template.py", li
>> ne 774, in _join_output
>>     for name, value in out:
>>   File
>> "C:\Python25\lib\site-packages\web.py-0.31-py2.5.egg\web\debugerror.pyc",
>>  line 183, in __template__
>>     $if ctx.output or ctx.headers:
>>   File
>> "C:\Python25\lib\site-packages\web.py-0.31-py2.5.egg\web\webapi.py", line
>>  208, in input
>>     a = cgi.FieldStorage(fp=fp, environ=e, keep_blank_values=1)
>>   File "C:\Python25\lib\cgi.py", line 534, in __init__
>>     self.read_multi(environ, keep_blank_values, strict_parsing)
>>   File "C:\Python25\lib\cgi.py", line 654, in read_multi
>>     environ, keep_blank_values, strict_parsing)
>>   File "C:\Python25\lib\cgi.py", line 536, in __init__
>>     self.read_single()
>>   File "C:\Python25\lib\cgi.py", line 669, in read_single
>>     self.read_lines()
>>   File "C:\Python25\lib\cgi.py", line 691, in read_lines
>>     self.read_lines_to_outerboundary()
>>   File "C:\Python25\lib\cgi.py", line 719, in read_lines_to_outerboundary
>>     line = self.fp.readline(1<<16)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\wsgiserver\__ini
>> t__.py", line 206, in readline
>>     data = self.rfile.readline(size)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\wsgiserver\__ini
>> t__.py", line 1024, in readline
>>     data = self.recv(self._rbufsize)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\wsgiserver\__ini
>> t__.py", line 925, in recv
>>     return self._sock.recv(size)
>> timeout: timed out
>>
>> Traceback (most recent call last):
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 209, in process
>>     return p(lambda: process(processors))
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 537, in processor
>>     return handler()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 209, in <lambda>
>>     return p(lambda: process(processors))
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 216, in process
>>     raise self.internalerror()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\application.py",
>>  line 449, in internalerror
>>     return debugerror.debugerror()
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\debugerror.py",
>> line 299, in debugerror
>>     return web._InternalError(djangoerror())
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\debugerror.py",
>> line 258, in djangoerror
>>     _get_lines_from_file(filename, lineno, 7)
>>   File
>> "c:\python25\lib\site-packages\web.py-0.31-py2.5.egg\web\debugerror.py",
>> line 243, in _get_lines_from_file
>>     context_line = source[lineno].strip('\n')
>> IndexError: list index out of range
>>
>> --
>> Su zhaohui   苏召辉
>>
>>
>>
>>
>>
>
>
> --
> Yours sincerely
>
> Jack Su
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/webpy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to