Web2Py - 上传文件并将内容读取为Zip文件

jit*_*dra 0 python web2py zipfile

我正在尝试从Web2Py表单上传一个zip文件,然后阅读内容:

form = FORM(TABLE(
           TR(TD('Upload File:', INPUT(_type='file', 
                                       _name='myfile', 
                                       id='myfile', 
                                       requires=IS_NOT_EMPTY()))), 
           TR(TD(INPUT(_type='submit',_value='Submit')))
       ))

if form.accepts(request.vars):  
    data=StringIO.StringIO(request.vars.myfile)  
    import zipfile  
    zfile=zipfile.Zipfile(data)
Run Code Online (Sandbox Code Playgroud)

由于某些原因,虽然上传的文件是zip文件,但此代码确实有效并且抱怨文件不是zip文件.

我是新来的Web2Py.如何data表示为zip文件?

小智 6

web2py表单字段上传已经是cgi.FieldStorage,您可以使用以下命令获取原始上传字节:

data = request.vars.myfile.value
Run Code Online (Sandbox Code Playgroud)

对于类文件对象,不需要StringIO,请使用:

filelike = request.vars.myfile.file
zip = zipfile.Zipfile(filelike)
Run Code Online (Sandbox Code Playgroud)