Использование PhpPowerpoint API в качестве читателя powerpoint

Я пытаюсь динамически встраивать powerpoints в мою веб-страницу с помощью API PhpPowerpoint, но безуспешно.

Вот мой код:

<?php     
    use PhpOffice\PhpPresentation\PhpPresentation;
    use PhpOffice\PhpPresentation\IOFactory;
    use PhpOffice\PhpPresentation\Style\Alignment;
    use PhpOffice\PhpPresentation\Style\Color;
    use PhpOffice\PhpPresentation\Shape\MemoryDrawing;
    use PhpOffice\PhpPresentation\Style\Fill;

    require_once 'PhpPresentation/src/PhpPresentation/Autoloader.php';
    \PhpOffice\PhpPresentation\Autoloader::register();

    require_once 'Common/src/Common/Autoloader.php';
    \PhpOffice\Common\Autoloader::register();

    $pptReader = IOFactory::createReader('PowerPoint2007');
    $oPHPPresentation = $pptReader->load('http://webitcloud.net/PW/1617/weduc/Teste.pptx');

    $oTree = new PhpPptTree($oPHPPresentation);
    echo $oTree->display();       
?>

Ошибка, которая появляется:

"Не удалось открыть http://webitcloud.net/PW/1617/weduc/Teste.pptx для чтения! Файл не существует.' в /home/webitcloud/public_html/PW/1617/weduc/PhpPresentation/src/PhpPresentation/Reader/PowerPoint2007.php:97

Какие-либо предложения?

1 ответ

Вы не можете открыть URI из читателя PowerPoint2007, потому что он пытается открыть его с помощью ZipArchive (который не принимает URI).

Решением является копирование файла на локальный компьютер:

$file = 'http://remote/url/file.zip';
$newfile = 'tmp_file.zip';

if (!copy($file, $newfile)) {
    echo "failed to copy $file...\n";
}
$pptReader = IOFactory::createReader('PowerPoint2007');
$oPHPPresentation = $pptReader->load($newfile);

$oTree = new PhpPptTree($oPHPPresentation);
echo $oTree->display(); 
Другие вопросы по тегам