python - data - Flask/Werkzeug cómo adjuntar el encabezado de longitud de contenido HTTP a la descarga de archivos
flask request data (3)
Creo que harías algo como esto (no probado):
from flask import Response
response = Response()
response.headers.add(''content-length'', str(os.path.getsize(FILE_LOCATION)))
Consulte: Objeto de encabezados de Werkzug y Objeto de respuesta de matraz .
Estoy usando Flask (basado en Werkzeug) que usa Python.
El usuario puede descargar un archivo, estoy usando la send_from_directory-function .
Sin embargo, cuando en realidad se descarga el archivo, la content-length
encabezado HTTP no se establece. Así que el usuario no tiene idea de cuán grande es el archivo que se está descargando.
Puedo usar os.path.getsize(FILE_LOCATION)
en Python para obtener el tamaño del archivo (en bytes), pero no puedo encontrar una manera de establecer el encabezado de content-length
en Flask.
¿Algunas ideas?
Desde la versión 0.6, la forma canónica de agregar encabezados a un objeto de respuesta es a través del método make_response
(ver documentos de Flask ).
def index():
response = make_response(render_template(''index.html'', foo=42))
response.headers[''X-Parachutes''] = ''parachutes are cool''
return response
También necesitaba esto, pero para cada solicitud, así que esto es lo que hice (basado en el documento):
@app.after_request
def after_request(response):
response.headers.add(''Access-Control-Allow-Origin'', ''*'')
return response