Estoy creando un controlador de "Descarga" usando Symfony 2, que tiene el único propósito de enviar encabezados para que pueda forzar la descarga de un archivo .csv, pero no funciona correctamente.Cómo forzar la descarga de un archivo .csv en Symfony 2, utilizando el objeto Response?
$response = new Response();
$response->headers->set('Content-Type', "text/csv");
$response->headers->set('Content-Disposition', 'attachment; filename="'.$fileName.'"');
$response->headers->set('Pragma', "no-cache");
$response->headers->set('Expires', "0");
$response->headers->set('Content-Transfer-Encoding', "binary");
$response->headers->set('Content-Length', filesize($fileName));
$response->prepare();
$response->sendHeaders();
$response->setContent(readfile($fileName));
$response->sendContent();
$fileName
es una cadena "info.csv"
. Tales son mis acciones dentro de mi controlador, no hay declaración de devolución. Cuando traté de devolver el objeto Response
, el contenido del archivo se mostraba en el navegador, no era mi resultado.
El problema que he encontrado es que en algunas páginas me pongo mi info.csv file
, pero en anothers todo lo que consigo es un mensaje:
No webpage was found for the web address: http://mywebpage.com/download
Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.
estoy completamente seguro de que el archivo existe , entonces debe haber otra cosa incorrecta. Además, routing.yml está funcionando correctamente, ya que obtengo el archivo de otras páginas que también se vinculan a esa ruta. El registro de errores de Apache no muestra nada al respecto.
¿Alguien ha forzado la descarga de un archivo .csv en Symfony 2 anteriormente? Si es así, ¿qué estoy haciendo mal?
$ tpldata no está definido –