ダウンロード用のPDFドキュメントを作成しています。たとえば、誰かがPDFリンクをクリックすると、PDFが生成され、ブラウザはそのPDFファイルのパスを含む新しいウィンドウを開きます。問題は、ブラウザがそのファイルの作成後約40〜50秒間、404 NOT foundエラーを表示していることですが、その後ブラウザを更新すると、そのファイルは表示またはダウンロード用に存在します。
1つのpdfリンクはhttp://images.myvouchercodes.co.uk/mvclocal/pdf/ca3b5098-9b35-7d8e.pdf で、ファイルを表示できますが、同じURLでは作成直後に404が見つかりません。私はファイルを書くために次のコードを使用しています
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();
}
その呼び出しはajaxであり、pdfの完了時にファイル名をエコーします。次にこのファイル名がurlに追加され、window.open()を使用してpdfリンクで新しいウィンドウを開きます。これにより404notfoundエラーが発生します。このエラーが発生している理由を誰かが知っていますか?