PHPPresentation — Как настроить имя файла обслуживаемого (загружаемого в браузере) файла, чтобы оно не совпадало с именем вызывающего сценария php?

Как изменить следующий скрипт (Summary.php), чтобы имя обслуживаемого файла PPTX не было «Summary.php», а мой обслуживаемый файл не назывался Summary.php.pptx?

Техника, которую я использую, заключается в том, чтобы рендерить содержимое файла PowerPoint в браузер, но я намеренно хочу изменить имя файла, чтобы оно по крайней мере не содержало .php, но в лучшем случае было пользовательским именем, например Presentation.pptx, как указано в моем заголовке php. ниже.

Summary.php

require_once 'vendor/phpoffice/phppresentation/vendor/autoload.php';
use PhpOffice\PhpPresentation\PhpPresentation;
use PhpOffice\PhpPresentation\IOFactory;
use PhpOffice\PhpPresentation\Style\Alignment;
use PhpOffice\PhpPresentation\Style\Color;
use PhpOffice\PhpPresentation\Style\Fill;
use PhpOffice\PhpPresentation\Style\Border;class Presentation
{
function generatePresentation()
{
header("Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation; filename=Presentation.pptx");
$oWriterPPTX = IOFactory::createWriter($this->objPhpPresentation,'PowerPoint2007' );
$oWriterPPTX->save('php://output');
}
}

РЕДАКТИРОВАТЬ

Решение

    header("Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation");
header("Content-Disposition: attachment; filename=Presentation.pptx");
$oWriterPPTX = IOFactory::createWriter($this->objPhpPresentation,'PowerPoint2007' );
$oWriterPPTX->save('php://output');

0

Решение

Вы должны использовать Content-Disposition заголовок ответа. Например.

Content-Disposition: attachment; filename="filename.jpg"

Ссылка: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]