Получение ошибки «Не удается открыть pdf» с правильным исходным URL-адресом при использовании FPDI

Я пытаюсь отредактировать pdf в laravel. Я создал следующую функцию в своем контроллере, которая имеет use FPDI и use FPDF

static function getHigherPDF() {

    $pdf = new FPDI();
    $pdf->AddPage();
    $pdf->setSourceFile('/pdf/higher.pdf');
    $tplIdx = $pdf->importPage(1);
    $pdf->useTemplate($tplIdx, 10, 10, 100);
    $pdf->Output();
    $pdf->SetFont('Helvetica');
    $pdf->SetTextColor(255, 0, 0);
    $pdf->SetXY(30, 30);
    $pdf->Write(0, 'This is just a simple text');

    return $pdf;

}

Я продолжаю получать следующую ошибку, и я не могу понять, почему, я даже получаю ошибку, если я помещаю полный путь с http:// и т. д. в pdf. PDF открывается в моем браузере, когда я перехожу к этому файлу. Я не могу найти никакой информации о том, почему это может происходить, если URL-адрес файла является допустимым URL-адресом.

есть идеи?

{message: "Cannot open /pdf/higher.pdf !", exception: "InvalidArgumentException",...}
exception: "InvalidArgumentException"
file: "/home/vagrant/code/brainskills-at-work/vendor/setasign/fpdi/pdf_parser.php"
message: "Cannot open /pdf/higher.pdf !"

Указав $pdf->setSourceFile('/pdf/higher.pdf');, вы указываете абсолютный маршрут, вы должны использовать относительный. Где находится ваш pdf?

namelivia 22.05.2019 16:50

он находится в http://www.sample.com/pdf/higher.pdf

movac 22.05.2019 16:52

Я имею в виду, в вашей файловой системе, какая папка внутри вашего проекта laravel? storage/app/public?

namelivia 22.05.2019 16:54

ааа правильно путь в структуре папок root/public/pdf/higher (не в хранилище)

movac 22.05.2019 16:55
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
0
4
805
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны ссылаться на свой файл, используя генератор laravel для общедоступных путей:

$pdf->setSourceFile(public_path('/pdf/higher.pdf'));

Это создаст абсолютный путь в вашей файловой системе к файлу.

Другие вопросы по теме