Pregunta

Estoy creando documento pdf para su descarga por ejemplo, alguien hace clic en un enlace PDF a continuación, un PDF se genera y se abre en una nueva ventana del navegador con la ruta de ese archivo PDF. El problema es que el navegador está dando error 404 no encontrado para ese archivo durante unos 40-50 segundos después de su creación, pero después de eso, cuando se actualiza el navegador que el archivo está presente para su visualización o descarga.

un enlace pdf es http: //images.myvouchercodes .es / mvclocal / pdf / ca3b5098-9b35-7d8e.pdf donde se puede ver el archivo pero el mismo url da 404 no encontró inmediatamente después de su creación. Estoy usando siguiente código al archivo de escritura

      try{
            $fh = fopen($filename, "w");                        
            $contents = $this->render();   // return pdf contents in string        
            if(fwrite($fh, $contents))
            {           
                $fh = fopen($filename, "r");                    
                while(strlen(file_get_contents($filename)) !=  strlen($contents))
                { }
                echo $filename;
            }
            else
            {
                throw new Exception ("Unable to create pdf");
            }
            fclose($fh);

        }
        catch(Exception $e)
        {
            echo $e->getMessage();
        }

Esa llamada es Ajax y ecos nombre del archivo PDF sobre la terminación, a continuación, este nombre de archivo se añade a la URL y yo uso window.open () para abrir una nueva ventana con el enlace pdf que me da error 404 no encontrado. ¿Alguien sabe por qué este error está ocurriendo?

¿Fue útil?

Solución

cabeceras usar PHP para la salida directa de PDF en el navegador

$contents = $this->render();
header('Content-type: application/pdf');
header('Content-disposition: inline; filename=nijman.pdf');
header('Content-length: ' . strlen($contents));
echo $contents;

Así que en lugar de hacer ajax nueva ventana abierta con el URL de crear el código PDF.

Otros consejos

En primer lugar, es necesario aislar si es cuestión pdf Zend o un servidor web en general. Trate de creaty manualmente ficticia archivo de 1 byte y de verificación si se mostraría el mismo retardo.

Se le toca a su configuración de servidor web -. Algunos pueden tener propiedades agresivas del sistema de archivos de almacenamiento en caché, lo que no hay una respuesta universal, tendrá que comprobar las opciones de configuración correspondiente

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