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

उपरोक्त उदाहरण को जानबूझकर अक्षम कर दिया गया है ताकि लोग हमारे सर्वर पर फ़ाइल अपलोड न कर सकें, लेकिन आप अपने सर्वर के साथ उपरोक्त कोड आज़मा सकते हैं।
यहां फ़ाइल अपलोड को संभालने के लिए save_file.py स्क्रिप्ट है −
#!/usr/bin/python import cgi, os import cgitb; cgitb.enable() form = cgi.FieldStorage() # Get filename here. fileitem = form['filename'] # Test if the file was uploaded if fileitem.filename: # strip leading path from file name to avoid # directory traversal attacks 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,)यदि आप उपरोक्त स्क्रिप्ट को यूनिक्स/लिनक्स पर चलाते हैं, तो आपको फ़ाइल सेपरेटर को बदलने का ध्यान रखना होगा, अन्यथा आपकी विंडोज मशीन पर उपरोक्त open() स्टेटमेंट ठीक काम करना चाहिए।
fn = os.path.basename(fileitem.filename.replace("\\", "/" ))