data python http-headers download flask werkzeug

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