Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Cómo cargar archivos PDF desde mi proyecto Symfony2?

22 de febrero de 2014

En el proyecto que estoy realizando necesito guardar y cargar archivos PDF, o sea, con extensión .pdf. ¿Cómo haría esto? Ya logré que se guardara pero para abrirlo desde la app en symfony 2.1.7 me da problemas. No muestra absolutamente nada. Necesito de su ayuda, ya que tengo muy poca documentación.


Respuestas

#1

Según nos comentas, ya has conseguido que los usuarios puedan subir sus archivos PDF a tu sitio. Esta es con diferencia la parte más difícil de todo el proceso, así que ahora no debería ser muy difícil mostrar los archivos en tu aplicación.

La forma más sencilla de hacerlo consiste en utilizar la clase especial BinaryFileResponse para servir estos archivos binarios. Algo así:

use Symfony\Component\HttpFoundation\BinaryFileResponse;
 
// ...
 
public function pdfAction()
{
    // ...
    $rutaPdf = $this->container->getParameter('kernel.root_dir')
               .'/../web/uploads/archivo.pdf';
    return new BinaryFileResponse($rutaPdf);
}

La clase BinaryFileResponse es bastante flexible, por lo que puedes por ejemplo cambiar el nombre del archivo dinámicamente para cada usuario:

use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
 
// ...
 
public function pdfAction()
{
    // ...
    $rutaPdf = $this->container->getParameter('kernel.root_dir')
               .'/../web/uploads/archivo.pdf';
    $respuesta = new BinaryFileResponse($rutaPdf);
    $respuesta->setContentDisposition(
        ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'otro_nombre.pdf'
    );
 
    return $respuesta;
}

Si esto no te funciona, danos por favor más información sobre los errores concretos que se producen en la aplicación.

@javiereguiluz

25 febrero 2014, 8:54