Flask/Werkzeug как прикрепить заголовок HTTP content-length к загрузке файла
Я использую колбу (на основе Werkzeug), которая использует Python.
пользователь может загрузить файл, я использую send_from_directory
функции.
однако при фактической загрузке файла заголовок HTTP content-length
не установлено. Таким образом, пользователь понятия не имеет, насколько велик загружаемый файл.
Я могу использовать os.path.getsize(FILE_LOCATION)
в Python, чтобы получить размер файла (в байтах), но не может найти способ установить content-length
заголовок в колбу.
какие идеи?
3 ответов
Я считаю, что вы сделали бы что-то вроде этого (непроверено):
from flask import Response
response = Response()
response.headers.add('content-length', str(os.path.getsize(FILE_LOCATION)))
посмотреть: объект заголовков Werkzug и объект отклика фляжки.
мне это тоже нужно, но для каждого запроса, поэтому вот что я сделал (на основе документа):
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
начиная с версии 0.6 канонический способ добавления заголовков к объекту ответа - через make_response
метод (см. колба docs).
def index():
response = make_response(render_template('index.html', foo=42))
response.headers['X-Parachutes'] = 'parachutes are cool'
return response