需要将上传的文件发送到我的本地PC

时间:2010-05-21 08:08:29

标签: python file upload file-upload

我创建了一个测试表单,要求用户输入名称并上传图像文件:

<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中完成吗?请告诉我。

3 个答案:

答案 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()

感谢帮助人员。