Не удается сохранить файл в каталог с помощью FPDF

Я не буду вдаваться в подробности или показывать длинный код при создании самого PDF-файла, потому что знаю, что генерация файлов работает нормально.

Когда я пытаюсь сделать следующее:

$pdf->Output('abc.pdf', 'F');

Я получаю сообщение об ошибке:

Ошибка FPDF: невозможно создать выходной файл: abc.pdf

Изменив назначение вывода на «D» или «I»:

$pdf->Output('abc.pdf', 'D');

Пользователю предлагается загрузить сгенерированный PDF-файл, и это делается успешно (просматривается нормально). Ошибка заставляет меня думать, что это ошибка разрешений, но fpdf должен иметь доступ для записи файла PDF в каталог, в котором действие уже происходит, верно?

Кто-нибудь имел дело с этим раньше?


person JM4    schedule 20.04.2011    source источник
comment
Доступен ли PHP для записи каталог, в который вы пытаетесь записать? Они не обязательно по умолчанию.   -  person Pekka    schedule 21.04.2011
comment
FPDF не должен иметь права на запись, он может иметь только чтение для выполнения. Проверьте свои разрешения.   -  person Szymon Lukaszczyk    schedule 21.04.2011
comment
@Szymon: OP не выполняет fpdf, а просто использует его и пытается записать PDF-файл, созданный с помощью FDPF. Таким образом, скрипт ДОЛЖЕН иметь права на запись.   -  person Marc B    schedule 21.04.2011


Ответы (2)


Если ваш PHP-скрипт выполняется с веб-страницы (обслуживаемой Apache), тогда этот код будет выполняться пользователем Apache (иногда называемым www-data).

Таким образом, ваш пользователь Apache должен иметь возможность писать в каталог, в который вы пытаетесь писать.


Как правило, вам может потребоваться предоставить привилегию write other пользователям вашей системы, используя что-то вроде этого из командной строки:

chmod o+w your_directory


Программное обеспечение, которое вы используете для загрузки исходных файлов, если вы делаете это с помощью графического интерфейса, должно позволять вам делать это с помощью нескольких флажков — вам нужно установить флажок «запись» для «других» пользователей. .

person Pascal MARTIN    schedule 20.04.2011
comment
В настоящее время я использую очень простой FTP-загрузчик, поэтому он недоступен. Я предполагаю, что вы говорите об изменении файла fpdf.php для использования привилегий «записи»? - person JM4; 21.04.2011
comment
Нет. Я говорю об установке разрешения на запись в каталог, в который ваш скрипт пытается писать. - person Pascal MARTIN; 21.04.2011

chmod o+w your_directory исправил это для меня :)

person Robert Saylor    schedule 21.06.2012