CGI POST binary file upload?

Ilariu Raducan lale at fotonation.com
Wed Dec 6 17:34:56 CET 2000


Hmm..
It's true mode='rb' should be the default parameter in the function call
only when the OS is windows.
I think the module should be modified to work on every OS.. but not by
myself
But I tried the SocketServer with the folowing code and it's working:

import SocketServer, sys,traceback,re

class ReqHandler (SocketServer.StreamRequestHandler):
    def handle(self):
        print 'Starting .. . ..............'
        f = open ('log.log','wb')
        try:
            yf = self.request.makefile()
            line = yf.readline()
            while(line):
                print line
                for xx in line:
                    print ord(xx),
                if line == '\r\n':
                    print "break"
                    break
                if line[:15]=='Content-Length:':
                    lentemp = re.split('\s+',line)
                    length = int(lentemp[1])-1
                    print length
                line = yf.readline()

            line = yf.read(length)

        except:
            traceback.print_exc()

        print line
        print "**"
        f.write(line)
        f.close()
        yf.flush()
        print "**"
        yf.write("HTTP/1.0 200 OK Message\r\n\r\n")
        yf.flush()
        print 'End  .. . . .. . . .. . .. . .. .'

x=SocketServer.TCPServer(('',9080),ReqHandler)

try:
    x.serve_forever()
except KeyboardInterrupt:
    sys.exit()
except:
    pass

 Are you sure is broking the the SocketServer module?

Regards,
Lale


"Fredrik Lundh" <fredrik at effbot.org> wrote in message
news:zodX5.1943$O%.340817 at newsc.telia.net...
> Ilariu Raducan wrote:
> > In class _sockobject in the file socket.py change the 'r' mode with 'rb'
> >
> >   def makefile(self, mode='r', bufsize=-1):
> >         #MODIFIED   return _fileobject(self._sock, 'rb', bufsize)
> >         return _fileobject(self._sock, 'rb', bufsize)
>
> please.  what's wrong with changing the *call* to the
> function, instead of the function itself?
>
> btw, your "fix" breaks SocketServer.py, and god knows
> how many other programs...
>
> </F>
>
>





More information about the Python-list mailing list