2012-03-21 2 views
7

Ho caricato la cartella zip utilizzando l'input di file, ma quando ho verificato se questo zip è valido o meno, il risultato è stato: non è un file pkzip valido, non so qual è la specifica valida pkzip. Ho usato questo codice per controllare:?File zip valido in 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 

Non so il motivo per cui, ad esempio quando si invia test.zip, l'O/P sarà: test.zip non è un file pkzip valida, ho È necessario un aiuto.Grazie

+0

Quale versione di Python stai usando? – katrielalex

risposta

10

zipfile.is_zipfile accetta un percorso per un file o un oggetto simile a un file. Non lo passi neanche, quindi fallisce.

Chiedi circa file_upload.file invece.

+0

: ho usato python 2.5 e lavoro su eclipse, ho provato come dici tu, file_upload.file, ma l'errore è: coercizione a Unicode: bisogno di stringhe o buffer, cStringIO.StringO found.Qual è il problema, per favore? –

+0

Dovrai leggere il file - potrebbe essere '.getvalue()'; Non riesco a ricordare il metodo esatto - e passare i dati a 'zipfile'. Oppure scrivilo su 'TemporaryFile'. – katrielalex

+0

@ katrielalex: come posso ottenere il percorso del file caricato per usarlo in: zipfile.is_zipfile ??? Grazie –