2012-03-21 25 views
7

Cargué la carpeta zip usando la entrada de archivo, pero cuando compruebo si este zip es válido o no, el resultado fue: no es un archivo pkzip válido, no sé cuál es la especificación para válido pkzip. que utiliza este código para comprobar:?Archivo zip válido en python

form = cgi.FieldStorage() 
file_upload = form['file[]'] 
if zipfile.is_zipfile(file_upload.filename): 
    print "%s is a valid pkzip file" % file_upload.filename 
else: 
    print "%s is not a valid pkzip file" % file_upload.filename 

No sé por qué, por ejemplo, cuando subo test.zip, la O/P será: test.zip no es un archivo válido pkzip, me necesita ayuda.Gracias

+0

¿Qué versión de Python estás usando? – katrielalex

Respuesta

10

zipfile.is_zipfile toma una ruta a un archivo o un objeto similar a un archivo. Tampoco lo estás pasando, por lo que falla.

Pregúntale por file_upload.file en su lugar.

+0

: utilicé Python 2.5 y trabajo en eclipse, intenté como dices; file_upload.file, pero el error es: coaccionando a Unicode: necesita cadena o búfer, se encontró cStringIO.StringO.¿Cuál es el problema, por favor? –

+0

Necesitarás leer el archivo; podría ser '.getvalue()'; No recuerdo el método exacto, y paso los datos a 'zipfile'. O bien, escríbelo en un 'TemporaryFile'. – katrielalex

+0

@ katrielalex: ¿cómo puedo obtener la ruta del archivo cargado para usarlo en: zipfile.is_zipfile? Gracias –

Cuestiones relacionadas