Необходимо загрузить загруженный файл на мой локальный компьютер - PullRequest
0 голосов
/ 21 мая 2010

Я создал тестовую форму, которая попросит пользователей ввести имя и загрузить файл изображения:

<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>

Мне нужно загрузить файл пользователем и сохранить его на моем локальном компьютере. это можно сделать в Python? пожалуйста, дайте мне знать.

Ответы [ 3 ]

1 голос
/ 21 мая 2010

mod_python включает в себя FieldStorage класс , который позволяет получить доступ к загруженным данным формы.Чтобы использовать его, вы должны добавить в скрипт 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 - имя файла, предоставленное клиентом.Другие полезные атрибуты перечислены в документации, на которую я ссылаюсь.

0 голосов
/ 22 мая 2010

Привет, Дэвид, у меня все получилось, я сделал это так:

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

Спасибо за помощь, ребята.

0 голосов
/ 21 мая 2010

Maybie минимальный http cgi рецепт загрузки и его комментарии полезны для вас.

...