Hice tal cual me indicaste y lo mismo. Adicionalmente, probe de dos formas
Directamente Código PHP:
//$file = $fileData->raw_dat_rec;
$name = $fileData->nom_rec;
$mime = $fileData->mim_rec;
$size = $fileData->tam_rec;
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
header('Content-Type: ' . $mime);
header('Content-Disposition: attachment; filename=' . $name);
echo $fileData->raw_dat_rec;
Y aplicando un Flush Código PHP:
//$file = $fileData->raw_dat_rec;
$name = $fileData->nom_rec;
$mime = $fileData->mim_rec;
$size = $fileData->tam_rec;
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
header('Content-Type: ' . $mime);
header('Content-Disposition: attachment; filename=' . $name);
ob_clean();
flush();
readfile($fileData->raw_dat_rec);
exit;
El archivo originalmente tiene 23,5 KB. Con el primer método me devuelve un archivo de 2,54 KB y en el segundo me devuelve uno de 47,0 KB. Es decir el doble de peso. Algo muy raro esta pasando y no tengo idea. Cuando guardo el archivo, tambien guardo el peso en bytes y el que se guarda es de 24101, que es congruente con el peso aproximado de la imagen.
Ya de verdad no se que mas hacer... A mi parecer el código esta bien. Pero no logro ver donde esta la falla.