Como descargar Un archivo pdf en MVC 5 directamente

publicado por: Anonymous

Deseo que al realizar ciertas operaciones el archivo generado en pdf se descargue directamente y no se visualice en el navegador (chrome)

    byte[] fileBytes =  System.IO.File.ReadAllBytes(@"\svrdlloPendientes" + nombrePDF);
   return File(fileBytes, "application/pdf");

En Explorer sí lo descarga directamente

solución

Esto lo armé hace unos años pero te puede servir.

        byte[] fileBytes =  System.IO.File.ReadAllBytes(@"\svrdlloPendientes" + nombrePDF);
        MemoryStream ms = new MemoryStream(fileBytes, 0, 0, true, true);
        Response.AddHeader("content-disposition", "attachment;filename= NombreArchivo");
        Response.Buffer = true;
        Response.Clear();
        Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
        Response.OutputStream.Flush();
        Response.End();
        return new FileStreamResult(Response.OutputStream, "application/pdf");

El secreto está en esta línea:
Response.AddHeader("content-disposition", "attachment;

El explorador debería bajarlo como un adjunto y no abrirlo directamente.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *