Проблема с удаленным файлом - PullRequest
0 голосов
/ 24 августа 2010

Я создаю документ PDF для загрузки, например, если кто-то щелкнул ссылку PDF, затем создается файл PDF, и браузер открывает новое окно с путем к этому файлу PDF.Проблема в том, что браузер выдает ошибку 404 НЕ найден для этого файла в течение 40-50 секунд после его создания, но после этого, когда я обновляю браузер, этот файл присутствует для просмотра или загрузки.

одна 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-ссылка, которая дает мне 404 не найдена ошибка.Кто-нибудь знает, почему происходит эта ошибка?

Ответы [ 2 ]

1 голос
/ 25 августа 2010

использовать заголовки php для непосредственного вывода pdf в браузер

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

поэтому вместо ajax откройте новое окно с URL-адресом для создания PDF-кода.

1 голос
/ 24 августа 2010

Во-первых, вам нужно изолировать, если это проблема Zend pdf или общая проблема веб-сервера.Попробуйте вручную создать фиктивный 1-байтовый файл и проверьте, будет ли он показывать такую ​​же задержку.

Они зависят от конфигурации вашего веб-сервера - некоторые могут иметь агрессивное кэширование свойств файловой системы, поэтому универсального ответа нетвам нужно проверить соответствующие параметры конфигурации.

...