Проблема с генерацией файла fopen в imagick - PullRequest
0 голосов
/ 02 февраля 2019

В Imagick я пытаюсь сделать следующее: При доступе к .php уже начинается загрузка .jpg, мне даже не требуется предварительный просмотр только при многократной загрузке, потому что этот рассматриваемый .pdf всегда будет иметь две страницы, с этимfopen Я могу загрузить только первую страницу, по какой-то причине она не загружает вторую страницу.

pdf_file = './programming/'.$date.'.pdf';
$mpdf->Output($pdf_file);

$img = new imagick();
$img->setResolution(200,200);
$img->readImage($pdf_file);
$img->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$img->setImageFormat('jpg');
$img->setImageCompressionQuality(85);

$pages = $img->getNumberImages();
if ( $pages ) {
        foreach($img as $i => $img_file){
            $img_file->writeImage('./programming/('.$i.') '.$date.'.jpg');
            $img_path = './programming/('.$i.') '.$date.'.jpg';
            header('Content-Type: application/download');
            header('Content-Disposition: attachment; filename="('.$i.') '.$date.'.jpg"');
            header("Content-Length: " . filesize($img_path));

            $fp = fopen($img_path, "rb");
            fpassthru($fp);
            fclose($fp);
        }
} else {
        echo '<h2>Not Found.</h2>';
}

$img->clear();
$img->destroy();

Если кто-то может мне помочь, возможно, я что-то упустил!

Спасибозаранее за ваше внимание!

Примечание. Изображения, представляющие страницы 1 и 2 .pdf, уже сохранены в папке ./programming/, в этом случае код работает хорошо, затем foreach сделал то, что ожидал, создал два изображения и сохранил их, но скачал только одно с помощью fopen

...