Атрибут content_length
Атрибут content_length применяется к объекту
загруженного файла класса FileUpload и содержит
размер файла в байтах в виде целого числа. Значение
берётся из HTTP-заголовка Content-Length,
который передаётся вместе с частью составного
запроса multipart/form-data.
Атрибут доступен только для чтения. Если по какой-то
причине заголовок не был передан клиентом, значение
атрибута будет равно None. Атрибут удобно
использовать для проверки размера файла до его
сохранения на диск.
Синтаксис
file.content_length
Пример
Давайте выведем размер загруженного файла:
from bottle import Bottle, request
app = Bottle()
@app.route('/upload', method='POST')
def upload():
file = request.files.get('myfile')
return 'Size: %d bytes' % file.content_length
Результат выполнения кода:
<+html+>
Size: 1024 bytes
<-html+>
Пример
Давайте проверим, что файл не превышает допустимый размер, прежде чем сохранять его:
from bottle import Bottle, request
app = Bottle()
@app.route('/upload', method='POST')
def upload():
file = request.files.get('myfile')
if file.content_length > 1048576:
return 'File is too large'
file.save('/uploads/' + file.filename)
return 'Uploaded'
Результат выполнения кода для файла в 1 КБ:
<+html+>
"Uploaded"
<-html+>
Смотрите также
-
класс
FileUpload,
который представляет загруженный файл -
атрибут
filename,
который хранит имя загруженного файла -
атрибут
content_type,
который хранит MIME-тип загруженного файла -
метод
save,
который сохраняет загруженный файл на диск