Remote File Existence Problema
-
30-09-2019 - |
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?
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