Domanda

Sto creando documento pdf per il download per esempio qualcuno fa clic su un collegamento PDF poi un pdf viene generato e il browser si apre una nuova finestra con il percorso di quel file pdf. Il problema è che il browser sta dando 404 Not Found errore per quel file per circa 40-50 secondi dopo la sua creazione, ma dopo che, quando ho aggiornamento del browser che file è presente per la visualizzazione o il download.

un collegamento pdf è http: //images.myvouchercodes .co.uk / mvclocal / pdf / ca3b5098-9b35-7d8e.pdf dove è possibile visualizzare file, ma allo stesso URL dà 404 non trovato subito dopo la sua creazione. Sto usando seguente codice in un file di scrittura

      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();
        }

Questa chiamata è l'Ajax ed echi nome del file dopo il completamento pdf, allora questo il nome del file viene aggiunto URL e l'io uso window.open () per aprire una nuova finestra con il link pdf che mi dà 404 non trovato errore. Chiunque sa perché questo errore si sta verificando?

È stato utile?

Soluzione

intestazioni utilizzare PHP per l'emissione direttamente pdf dal browser

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

così invece di fare ajax nuova finestra aperta con l'URL di creare il codice pdf.

Altri suggerimenti

In primo luogo, è necessario isolare se si tratta di Zend problema pdf o webserver quella generale. Cercate di creaty manualmente manichino file di 1 byte e verificare se avrebbe mostrato lo stesso ritardo.

Si sta a propria configurazione server web -. Alcuni potrebbero avere aggressivi proprietà del file-sistema di caching, quindi non c'è una risposta universale, è necessario verificare le opzioni di configurazione corrispondente

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top