龙卷风web服务器上的图像上传

not*_*oad 13 python file-upload tornado

我正试图在龙卷风中获得一个简单的图像上传表格.一切正常,文本文件,数据到达服务器并被写入文件系统.但是,当我尝试上传二进制文件(特别是jpeg或png)时,它会被破坏.打开上传的PNG的结果导致错误"由ascii转换损坏的PNG文件"和jpeg给出"jpeg datastream包含无图像".我究竟做错了什么?

蟒蛇:

class FileUploadHandler(BaseHandler):
    def post(self):
    reg=self.get_argument('regid', None)
    self.write(dir(self.request.files['myfile'][0]))
    if reg:
        reg=Registration(id=reg)
        f=open(ROOT_APP_PATH+'/static/clubfiles/{0}/{1}/{2}'\
            .format(reg.club.id, reg.id, uuid()), 'w')
        f.write(self.request.files['myfile'][0]['body'])
        f.close()
Run Code Online (Sandbox Code Playgroud)

HTML:

   <form    target=iframe 
            action="/do_file_upload/" 
            enctype="multipart/form-data; charset=utf-8"
            method="post">
        <input type=hidden name=regid value=${element.get_relevant_registration().id}>
        <input name=myfile type=file onchange="$(this).parent().submit()">
    </form>
Run Code Online (Sandbox Code Playgroud)

龙卷风服务器在win server 2008上运行,如果相关的话.

编辑:该死,简单修复.我需要使用open(filename,'wb')以二进制模式写入.希望这有助于从谷歌到这里的人.