file_upload.filename
の代わりにfile_upload.file
をZipFile
に渡すことができます。
ここで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>
出典
2012-03-25 22:32:37
jfs
なぜあなたはファイルの代わりにファイル名を渡していますか? Unicodeに強制変換::私はこのエラーを得たファイルを渡すとき: –
@Ignacioバスケス - エイブラムスは、必要文字列またはバッファを、cStringIO.StringOが見つかりました、私は、GoogleのApp Engineでの私のコードを実行しました。 –
ああ、それはおそらくファイルのようなものを使用していないバージョンを使用しています。 –