Класс FileUpload
Класс FileUpload используется в Bottle для представления
файла, загруженного через форму. Объект этого класса
создаётся автоматически при обработке POST-запроса
с multipart/form-data и доступен через словарь
request.files. Класс хранит файловый поток,
имя файла, MIME-тип и заголовки, а также позволяет
сохранить файл на диск или прочитать его содержимое.
Синтаксис
upload = request.files.get(name)
Атрибуты
Объект FileUpload имеет следующие основные атрибуты:
upload.file # файловый объект для чтения
upload.filename # имя файла, отправленное клиентом
upload.raw_filename # исходное имя файла
upload.name # имя поля формы
upload.content_type # MIME-тип файла
upload.content_length # размер файла в байтах
upload.headers # заголовки части multipart
Пример
Давайте создадим форму для загрузки файла и выведем его имя и размер:
from bottle import Bottle, request, template
app = Bottle()
@app.route('/')
def index():
return template('form')
@app.route('/upload', method='POST')
def upload():
file = request.files.get('myfile')
return f'{file.filename} - {file.content_length} bytes'
Шаблон form.tpl:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="myfile">
<input type="submit" value="Send">
</form>
Пример
Давайте сохраним загруженный файл на диск с помощью
метода save:
from bottle import Bottle, request
app = Bottle()
@app.route('/upload', method='POST')
def upload():
file = request.files.get('myfile')
file.save('/uploads', overwrite=True)
return 'saved'
Результат выполнения кода:
"saved"
Пример
Давайте прочитаем содержимое файла и выведем его MIME-тип:
from bottle import Bottle, request
app = Bottle()
@app.route('/upload', method='POST')
def upload():
file = request.files.get('myfile')
data = file.file.read()
return file.content_type
Результат выполнения кода для текстового файла:
"text/plain"
Смотрите также
-
метод
save,
который сохраняет загруженный файл на диск -
метод
get_header,
который возвращает заголовок части multipart -
атрибут
filename,
который хранит имя загруженного файла -
атрибут
file,
который хранит файловый объект для чтения