2012-03-21 76 views
7

我上傳的zip文件夾使用文件輸入,但是當我檢查這個zip是否有效;結果是:不是一個有效的pkzip文件,我不知道什麼是有效的規範PKZIP。 我用這個代碼來檢查:在Python中有效的zip文件

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 

我不知道爲什麼,例如當我上傳test.zip中,O/P將是: test.zip不是有效的PKZIP的文件,我需要幫助。謝謝

+0

您正在使用哪種版本的Python? – katrielalex 2012-03-21 21:13:38

回答

10

zipfile.is_zipfile需要一個文件或文件類對象的路徑。你也沒有通過它,所以它失敗了。請參閱file_upload.file

+0

:我使用了python 2.5並在eclipse上工作,我試着按照你的說法; file_upload.file,但是錯誤是:強制轉換爲Unicode:需要字符串或緩衝區,cStringIO.StringO found.What是什麼問題? – 2012-03-21 21:23:33

+0

您需要閱讀文件 - 它可能是'.getvalue()';我不記得確切的方法 - 並將數據傳遞給'zipfile'。否則寫入一個'TemporaryFile'。 – katrielalex 2012-03-21 23:12:07

+0

@ katrielalex:我如何獲得上傳文件的路徑:zipfile.is_zipfile ???謝謝 – 2012-03-25 20:33:45