文件上传实例
HTML设置上传文件的表单需要设置 enctype 属性为 multipart/form-data,代码如下所示:
实例
<!DOCTYPE html>
<html>
<head>
<metacharset="utf-8">
<title>教程(jiaocheng.com)</title>
</head>
<body>
<formenctype="multipart/form-data"
action="/cgi-bin/save_file.py"method="post">
<p>选中文件: <inputtype="file"name="filename"/></p>
<p><inputtype="submit"value="上传"/></p>
</form>
</body>
</html>
save_file.py 脚本文件代码如下:
实例
#!/usr/bin/python3
importcgi,os
importcgitb;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 ='文件 "' + fn + '" 上传成功'
else:
message ='文件没有上传'
print("""\
Content-Type: text/html\n
<html>
<head>
<meta charset="utf-8">
<title>教程(jiaocheng.com)</title>
</head>
<body>
<p>%s</p>
</body>
</html>
""" % (message,))
将以上代码保存到 save_file.py,并修改 save_file.py 权限:
chmod 755 save_file.py