2012-03-25 6 views
1

をアップロードそのようなファイルやディレクトリはありません:「test.zip」は、と私は、このzfile=zipfile.ZipFile(file_upload.filename,"r")なしでコードを実行した場合、私は、有効なPKZIPファイルtest.zipではないことを取得します。 ありがとうございます。読書は私がこのよう試みたが、私はHTMLでフォームを使用してとCGIを使用してアップロードのzipファイルにfileitemsを読むことができますどのようにzipファイル

+1

なぜあなたはファイルの代わりにファイル名を渡していますか? Unicodeに強制変換::私はこのエラーを得たファイルを渡すとき: –

+0

@Ignacioバスケス - エイブラムスは、必要文字列またはバッファを、cStringIO.StringOが見つかりました、私は、GoogleのApp Engineでの私のコードを実行しました。 –

+0

ああ、それはおそらくファイルのようなものを使用していないバージョンを使用しています。 –

答えて

3

file_upload.filenameの代わりにfile_upload.fileZipFileに渡すことができます。

ここでzipファイル内のファイルのリストを出力するスクリプトです:

import sys 
sys.stderr = sys.stdout 
print "Content-Type: text/plain" 
print 

import cgi 
import zipfile 

form = cgi.FieldStorage() 

filefield = form['somefile'] 
print "Filename:", filefield.filename 

if filefield.file is not None and zipfile.is_zipfile(filefield.file): 
    zfile = zipfile.ZipFile(filefield.file) 
    print "Name list:\n\t", 
    print "\n\t".join(zfile.namelist()) 

と、対応するHTMLフォーム:

<!DOCTYPE html> 
<form enctype="multipart/form-data" action="file-upload" method=post> 
<p><label for=somefile>File: <input type=file name=somefile> 
<p><input type=submit> 
</form> 
関連する問題