PHP: принудительно загрузить изображение из корневого каталога? - PullRequest
1 голос
/ 19 августа 2010

Я пытаюсь принудительно загрузить изображение, которое находится в каталоге выше корня моего сайта. Загрузка происходит нормально, и правильное имя файла сохраняется. Однако конечный файл не является допустимым изображением и не будет открываться или отображаться должным образом. Вот мой код:

        $photograph = new ViewPhotograph($photograph_id);
        $photograph->setPhotographVars();

        $file = $photograph->getPath('small');
        $filename = '1.jpg';

        header('Content-Description: File Transfer');
        header('Content-Type: image/jpg');
        header('Content-Disposition: attachment; filename=' . $filename);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit;

Ответы [ 2 ]

3 голосов
/ 19 августа 2010

сделать ob_start перед вызовом ob_clean ()

как только что-то получится с помощью echo или подобного, вы не можете от него избавиться, кроме случаев, когда вы запускаете буфер до

0 голосов
/ 19 августа 2010

Возможно, есть предупреждение PHP, повреждающее поток.

Закомментируйте заголовки и посмотрите, видите ли вы предупреждение.Если это так, исправьте это.(обратите внимание, что на рабочих серверах не должно быть display_errors).

...