hmm... te voy a explicar el valor de dicha cabecera, mas no te hago el código... pues tienes manos y cerebro...
Content-Length debe ser el tamaño en bytes del contenido a enviar al navegador, así que lo puedes obtener con
filesize() en caso de ser un archivo, o
strlen() en caso de ser texto...
PDTA: por lo que leí de tu primer mensaje veo que los archivos no están alojados en el mismo servidor donde esta tu script, y eso es una mala técnica... pues aunque no lo ves, el servidor primero debe descargar los datos del servidor externo, y de ahí enviar los datos el cliente... si lo piensas es doble carga de trabajo para exactamente lo mismo!!