Pregunta

Estoy tratando de mostrar un PDF desde la base de datos (BYTE []) al usuario.

Estoy usando el código a continuación para representar PDF. Me está dando PDF como texto binario como se muestra a continuación. En lugar de abrir en la aplicación PDF, está presentando PDF como texto.

Response.Buffer = true;
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        //Response.AddHeader("Content-Length", fileToDownload.Length.ToString());
        //Response.AddHeader("Content-Disposition", "inline; name=RemoteUserGuide.pdf");
        Response.AppendHeader("content-length", fileToDownload.Length.ToString());
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(fileToDownload);
        Response.Flush();
        ////Response.Close();
        Response.End();

ACTUALIZACIÓN: Acabo de notar, esta página de la aplicación está haciendo PDF correctamente en Chrome, pero aún muestra texto en IE. (No tenga FF3 en el servidor para probar). ¿Probablemente es un problema de navegador?

¿Algunas ideas?alt text

¿Fue útil?

Solución

La instalación de Adobe corrupta hace esto. Reinstale el lector de Adobe en la máquina de destino (cliente).

A veces, el instalador de Adobe se bloquea y lo hace.

Otros consejos

Si está seguro, que su navegador puede ver PDF, entonces debe usar @PAGE ContentType="application/pdf" directiva en lugar de Response.ContentType = "application/pdf";

También deberías usar el Response.AddHeader("content-disposition", "filename=\"document.pdf\"" ); para configurar el nombre de archivo

Asegúrese de que su tipo de MIME para la extensión .pdf en IIS (Servicios de información de Internet) esté configurado en "Aplicación/PDF".

Como los demás dijeron, intente configurar el tipo / encabezado MIME en la aplicación / pdf, si esto no funciona, lo último es cerrar su navegador y reabrir la misma página, tuve este problema antes con FPDF (una biblioteca de generación PDF en PHP ), parece que el navegador caché el mimo de la página (PHP) y manteniéndolo para siempre, cerrando el navegador y reabriéndolo, funcionará #1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top