我创建了一个测试表单,要求用户输入名称并上传图像文件:
<html lang="en">
<head>
<title>Testing image upload</title>
</head>
<body>
<form action="/services/upload" method="POST" enctype="multipart/form-data">
File Description: <input name='fdesc' type='text'><br>
File name: <input type="file" name="fname"><br>
<div><input type="submit"></div>
</form>
</body>
</html>
我需要获取用户上传的文件并将其存储在我的本地PC上。这可以在python中完成吗?请告诉我。
答案 0 :(得分:1)
mod_python包含FieldStorage
class,允许您访问上传的表单数据。为了使用它,你可以在Python脚本中添加如下内容:
req.form = FieldStorage(req)
description = req.form['fdesc']
由于fdesc
是文字输入,description
将是一个字符串(更准确地说,是StringField
,您可以将其视为字符串)。
file_field = req.form['fname']
由于fname
是文件输入,file_field
不是字符串(或StringField
),而是Field
对象,允许您访问文件数据。属性file_field.file
是一个类似文件的对象,您可以使用它来读取文件的内容,例如:
for line in file_field.file:
# process the line
例如,您可以使用它来复制您选择的文件的数据。
file_field.filename
是客户端提供的文件名。其他有用的属性列在我链接到的文档中。
答案 1 :(得分:0)
Maybie minimal http cgi upload recipe,它的评论对你有帮助。
答案 2 :(得分:0)
filename = request.FILES['fname']
destination = open('%s/%s'%(/tmp/,fileName), 'wb+')
for chunk in filename.chunks():
destination.write(chunk)
destination.close()
file = open('%s/%s'%(/tmp/,fileName),"rb").read()
感谢帮助人员。