私は生のWSGI、cgi.FieldStorageとファイルのアップロードで遊んできました。そして、私はちょうどそれがファイルアップロードを扱う方法を理解できません。cgi.FieldStorageはどのようにファイルを保存しますか?
最初は、ファイル全体をメモリに保存するように見えました。そして、私はhmをテストするのは簡単なはずだと思いました。大きなファイルがメモリを詰まらせるはずです!それでも、ファイルをリクエストすると、それは文字列であり、イテレータ、ファイルオブジェクト、または何かではありません。
私はcgiモジュールのソースを読み込もうとしましたが、テンポラリファイルに関するいくつかのことを発見しましたが、ファイル( - )オブジェクトではなく、ひどい文字列を返します。それで...どうやって仕事をするの?事前に
import cgi
from wsgiref.simple_server import make_server
def app(environ,start_response):
start_response('200 OK',[('Content-Type','text/html')])
output = """
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="failas" />
<input type="submit" value="Varom" />
</form>
"""
fs = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ)
f = fs.getfirst('failas')
print type(f)
return output
if __name__ == '__main__' :
httpd = make_server('',8000,app)
print 'Serving'
httpd.serve_forever()
ありがとう:
は、ここで私が使用したコードです! :)
ありがとう:)私は主にDjangoを使用していますが、時にはそれらの低レベルのもので少し遊んでいます。 – Justinas