Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php TCPDF错误:Can';t打开图像文件:/var/www/html/tcpdf/cache/_Php_Tcpdf - Fatal编程技术网

Php TCPDF错误:Can';t打开图像文件:/var/www/html/tcpdf/cache/

Php TCPDF错误:Can';t打开图像文件:/var/www/html/tcpdf/cache/,php,tcpdf,Php,Tcpdf,我有一个网站,正在生成基于数据的PDF文件 我在一个免费的网络主机上尝试了它,它还可以,但是当我将它上传到我的服务器时,我遇到了以下错误: TCPDF错误:无法打开图像文件:/var/www/html/TCPDF/cache/mska_1d34cb1ba2c1951624fbcb7556c6d1d 在缓存文件夹中,mska_1d34cb1ba2c1951624fbcb7556c6d1d不存在于该文件夹中。猜测一下(使用这样的名称),它正试图写入该文件夹。检查PHP/Apache是否具有该文件夹的

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

我在一个免费的网络主机上尝试了它,它还可以,但是当我将它上传到我的服务器时,我遇到了以下错误:

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

在缓存文件夹中,mska_1d34cb1ba2c1951624fbcb7556c6d1d不存在于该文件夹中。

猜测一下(使用这样的名称),它正试图写入该文件夹。检查PHP/Apache是否具有该文件夹的写入权限

它以后也会想从中读取,所以请授予读取和写入权限。

我现在得到了答案

对于所有能够遇到这个问题的人来说,这些都是可能的解决办法

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

另一个原因是tcpdf不接受png文件或带有透明图像的文件。我的解决方案是将图像转换成jpeg格式,并为其应用白色背景。因此,避免使用透明的png


希望能有所帮助。

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


define('K_PATH_MAIN','/my/absulte/PATH/tcpdf/)

只需从库文件夹TCPPDF创建一个名为cache的文件夹


如果有配置文件夹、字体和图像,也可以创建缓存文件夹,如果不起作用,则授予777或755权限。

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

chmod 777 cache

我尝试使用755或775,但没有成功。

强制使用SELinux也可能导致此问题。需要添加一个异常。可以使用setEnforce0轻松测试,然后重试生成pdf。

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

我修复了将url替换为image/home/image/img1.jpg的绝对路径的问题。

在我的情况下,文件受到了保护,TCPDF试图使用CURL(!?)获取该图像,但出现了403错误,因为Apache没有找到正确的cookie。

使用PNG透明性描述为我省去了很多麻烦。非常感谢你!我发现当将图像保存为8位或24位PNG(在Fireworks中)时,TCPDF接受它们,但32位PNG会给出错误。不管透明度如何。@Stef,您应该添加您的评论作为答案!这会得到很多选票!谢谢,我的问题用这个解决了。我遇到了一个TCPDF错误:无法打开图像文件:(没有图像文件路径)因为我担心这会太过宽松,我尝试将缓存目录组更改为www数据(apache名称),并保留755以获得权限,从而成功。