2012-05-28 2 views
7

У меня есть веб-сайт, на котором создается файл PDF, основанный на данных.TCPDF ERROR: Не удается открыть файл изображения:/var/www/html/tcpdf/cache/

Я попробовал его в свободном и хостинге в порядке, но когда я загрузить его на мой сервер я получаю эту ошибку:

TCPDF ОШИБКА: Невозможно открыть файл изображения:/вар/WWW/HTML/TCPDF/кэш/mska_1d34cb1ba2c1951624fbccb7556c6d1d

в папке кэш-памяти mska_1d34cb1ba2c1951624fbccb7556c6d1d оленья кожа существовать в папке.

ответ

12

Теперь я получил ответ.

Для всех, кто сможет столкнуться с этой проблемой, это возможное решение.

Одна из причин, по которой папки внутри tcpdf не имеют прав на запись и чтение. убедитесь, что папка для кеша и изображений имеет разрешение 644 или 755 (рекомендуется). это разрешение очень важно, потому что есть процесс при создании pdf-файла, который пишет что-то в кеше или считывает изображения.

Другая причина в том, что tcpdf не принимает файл png или с прозрачными изображениями. мое решение состояло в том, чтобы сделать изображение в jpeg и применить к нему белый фон. поэтому избегайте png с прозрачным.

надеюсь, что это поможет.

+1

Вы сохраняете мне много проблем с описанием прозрачности PNG. Спасибо огромное! –

+0

Ваше приветствие^__^ – Bert

+4

Я обнаружил, что при сохранении изображений как 8 или 24-битных PNG (в Fireworks), TCPDF принимает их, но 32-битный PNG дает ошибки. Независимо от прозрачности. – stef

2

Угадай (с таким именем), он пытается НАПИСАТЬ в эту папку. Проверьте, что PHP/Apache имеет права на запись в эту папку.

Он также захочет также прочитать его позже, поэтому дайте разрешения на чтение и запись.

2

В дополнение к рекомендации Bert по проверке прав на доступ к папке, проверьте наличие проблем HTTP/HTTPS и обратите внимание, что вы можете установить путь к серверу K_PATH_MAIN в папку tcpdf, если он не будет автоматически рассчитан правильно. (В tcpdf_config.php)

define ('K_PATH_MAIN', '/my/absoulte/path/tcpdf/');

1

просто создать папку с именем кэш из библиотеки папки TCPPDF

где есть конфиг папки, шрифты и изображения, а также создавать папки кэша и дать разрешение 777 или 755, если не работает.

3

В Ubuntu эта ошибка была исправлена ​​путем установки 777 разрешений на папку tcpdf/cache/:

chmod 777 cache 

Я попытался с 755 или 775 и не работает.

+1

Спасибо, моя проблема была решена с этим. Я получал ** TCPDF ERROR: Не могу открыть файл изображения: ** (без пути файла изображения) –

+1

Поскольку я пугаю, это было бы слишком разрешительно, я стараюсь и успеваю, изменяя группу каталога кеша на www- data (имя Apache) и сохранить 755 для разрешений. – CedSha

0

Эта проблема также может быть вызвана принудительным выполнением SELinux. Необходимо добавить исключение. Можно легко протестировать с помощью setenforce 0, а затем повторить попытку для получения pdf.

0

Проверьте, чтобы ваши файлы имели расширение pdf (все в нижнем регистре), а не PDF (все кепки). Или сделать их последовательными так или иначе. У меня возникла проблема между системами Windows/Linux.

0

В моем случае файл был защищен, и TCPDF попытался получить это изображение с помощью CURL (!?!?), и он получил ошибку 403, потому что Apache не нашел правильный файл cookie.