TCPDF错误:无法打开图像文件:/ var / www / html / tcpdf / cache /

时间:2012-05-28 09:31:34

标签: php tcpdf

我有一个基于数据生成PDF文件的网站。

我在一个免费的虚拟主机上试了一下它没关系但是当我把它上传到我的服务器时我得到了这个错误:

TCPDF错误:无法打开图像文件:/ var / www / html / tcpdf / cache / mska_1d34cb1ba2c1951624fbccb7556c6d1d

在缓存文件夹中,mska_1d34cb1ba2c1951624fbccb7556c6d1d不存在于文件夹中。

9 个答案:

答案 0 :(得分:14)

我现在得到了答案。

对于所有能够遇到此问题的人来说,这些都是可能的解决方案。

一个原因是tcpdf中的文件夹没有写入和读取权限。确保缓存和图像的文件夹具有644或755(推荐)权限。这些权限非常重要,因为在生成pdf时有一个过程,它会写入缓存或读取图像。

另一个原因是tcpdf不接受png文件或透明图像。我的解决方案是将图像变成jpeg并为其应用白色背景。所以避免透明的png。

希望它有所帮助。

答案 1 :(得分:4)

在Ubuntu中,通过在tcpdf/cache/文件夹上设置777权限来修复此错误:

chmod 777 cache

我尝试使用755或775并且无法正常工作。

答案 2 :(得分:3)

猜测(有这样的名字),它试图写入该文件夹。检查PHP / Apache是​​否具有该文件夹的写权限。

它也想稍后阅读它,所以给予读写权限。

答案 3 :(得分:2)

除了Bert建议检查文件夹权限外,还要检查HTTP / HTTPS问题,并注意如果没有自动正确计算,可以将K_PATH_MAIN服务器路径设置为tcpdf文件夹。 (在tcpdf_config.php中)

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

答案 4 :(得分:1)

只需从库文件夹TCPPDF

创建一个名为cache的文件夹

如果有配置文件夹,字体和图像,还会创建一个缓存文件夹,如果不起作用,则授予777或755权限。

答案 5 :(得分:0)

执行SELinux也可能导致此问题。需要添加一个例外。可以使用setenforce 0轻松测试,然后重试生成pdf。

答案 6 :(得分:0)

检查您的文件是否扩展为pdf(全部小写)而不是PDF(全部大写)。或者以某种方式使它们保持一致。我在Windows / Linux系统之间遇到过这个问题。

答案 7 :(得分:0)

在我的情况下,文件受到保护,TCPDF试图用CURL(!?!?)获取该图像,并且它收到403错误,因为Apache找不到合适的cookie。

答案 8 :(得分:-1)

我用图像的绝对路径修复了替换网址http://www.example.com/img1.jpg /home/image/img1.jpg