एक फ़ाइल अपलोड करने के लिए, HTML फॉर्म में enctype एट्रिब्यूट multipart/form-data पर सेट होना चाहिए। फ़ाइल प्रकार के साथ इनपुट टैग एक "ब्राउज़" बटन बनाता है।
आउटपुट
इस कोड का परिणाम निम्नलिखित फॉर्म है -

उपरोक्त उदाहरण को जानबूझकर अक्षम किया गया है ताकि लोग हमारे सर्वर पर फ़ाइल अपलोड न कर सकें, लेकिन आप अपने सर्वर के साथ उपरोक्त कोड आज़मा सकते हैं।
फ़ाइल अपलोड को संभालने के लिए यहां save_file.py स्क्रिप्ट है -
#!/usr/bin/python import cgi, os import cgitb; cgitb.enable() form = cgi.FieldStorage() # यहां फ़ाइलनाम प्राप्त करें। fileitem = form['filename'] # जांचें कि फ़ाइल अपलोड की गई थी या नहीं if fileitem.filename: # डायरेक्टरी ट्रैवर्सल हमलों से बचने के लिए फ़ाइल नाम से अग्रणी पथ हटाएं fn = os.path.basename(fileitem.filename) open('/tmp/' + fn, 'wb').write(fileitem.file.read()) message = 'The file "' + fn + '" was uploaded successfully' else: message = 'No file was uploaded' print """\ Content-Type: text/html\n %s
""" % (message,)यदि आप उपरोक्त स्क्रिप्ट को Unix/Linux पर चलाते हैं, तो आपको फ़ाइल सेपरेटर को बदलने का ध्यान रखना होगा, अन्यथा आपकी विंडोज मशीन पर उपरोक्त open() स्टेटमेंट ठीक काम करना चाहिए।
fn = os.path.basename(fileitem.filename.replace("\\", "/" ))