要上传文件,HTML表单必须将enctype属性设置为multipart / form-data。具有文件类型的输入标签将创建一个“浏览”按钮。
示例
action = "save_file.py" method = "post">
File:
输出结果
此代码的结果是以下形式-File: Choose file
Upload
这是脚本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,)
如果您在Unix / Linux上运行上述脚本,则需要按如下 替换文件分隔符,否则在Windows机器上,上述open()语句应该可以正常工作。fn = os.path.basename(fileitem.filename.replace("\\", "/" ))