तो मैं कच्चे WSGI, cgi.FieldStorage और फ़ाइल अपलोड के साथ खेल रहा हूं। और मैं समझ नहीं पा रहा हूं कि यह फ़ाइल अपलोड से कैसे संबंधित है।cgi.FieldStorage स्टोर फ़ाइलों को कैसे करता है?
पहले ऐसा लगता था कि यह पूरी फाइल को स्मृति में संग्रहीत करता है। और मैंने एचएम सोचा, यह परीक्षण करना आसान होना चाहिए - एक बड़ी फाइल को स्मृति को छिपाना चाहिए! .. और ऐसा नहीं हुआ। फिर भी, जब मैं फ़ाइल का अनुरोध करता हूं, तो यह एक स्ट्रिंग है, न कि इटरेटर, फ़ाइल ऑब्जेक्ट या कुछ भी।
मैं cgi मॉड्यूल के स्रोत को पढ़ने की कोशिश की है और अस्थायी फ़ाइलों के बारे में कुछ बातें मिला, लेकिन यह एक पागल स्ट्रिंग देता है, एक फ़ाइल नहीं (तरह) वस्तु! तो ... यह कैसे काम fscking करता है ?!
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