Невозможно просмотреть загруженный файл PDF в браузере в php - PullRequest
0 голосов
/ 07 января 2019

У меня есть функция загрузки мультимедиа, в которой загружаются все типы мультимедийных файлов. Ниже приведен код

public function downloadMedia($file, $filename_direct = '', $extern = '', $exitHere = 1)
    {
        jimport('joomla.filesystem.file');

        clearstatcache();

        if (!$extern)
        {
            if (!JFile::exists($file))
            {
                return 2;
            }
            else
            {
                $len = filesize($file);
            }
        }
        else
        {
            /* Return the size of a remote url or a local file specified by $url.
                $thereturn specifies the unit returned (either bytes "", MiB "mb" or KiB
                "kb"). */
            $len = filesize($file);
        }

        $filename       = basename($file);

        $file_extension = strtolower(substr(strrchr($filename, "."), 1));
        $ctype = $this->getMime($file_extension);

        ob_end_clean();

        //  Needed for MS IE - otherwise content disposition is not used?
        if (ini_get('zlib.output_compression'))
        {
            ini_set('zlib.output_compression', 'Off');
        }

        header("Cache-Control: public, must-revalidate");
        header('Cache-Control: pre-check=0, post-check=0, max-age=0');
        header("Expires: 0");
        header("Content-Description: File Transfer");
        header("Content-Type: " . $ctype);
        header("Content-Length: " . (string) $len);
        header('Content-Disposition: attachment; filename="' . $filename . '"');

        //  set_time_limit doesn't work in safe mode
        if (!ini_get('safe_mode'))
        {
            @set_time_limit(0);
        }

        /*@readfile($file);

        if ($exitHere == 1)
        {
            exit;
        }*/

        $fp = fopen($file, "r") ;

        ob_clean();
        flush();
        while (!@feof($fp)) {
            $buff = @fread($fp, $len);
            print $buff;
        }

        exit;
    }

Теперь проблема заключается в том, что всякий раз, когда я загружаю файл PDF и нажимаю на загруженный файл, в браузере появляется сообщение об ошибке, например «Не удалось загрузить документ PDF».

Error Image

Загруженный файл PDF открывается правильно только тогда, когда я открываю файл в Adobe вместо открытия его в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...