Php FPDF错误:缺少图像文件或图像文件不正确

Php FPDF错误:缺少图像文件或图像文件不正确,php,fpdf,Php,Fpdf,我使用FPDF库通过PHP生成PDF文件。此库可以很好地处理纯文本(即为任何文本生成PDF文件),但在尝试将图像添加到我的PDF页面时,出现了FPDF错误:缺少或不正确的图像文件:{MY_file_PATH}。通过浏览器访问该文件路径,则相应的图像显示良好 我的代码是: require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 16); $pdf->Write(10, 'Exampl

我使用FPDF库通过PHP生成PDF文件。此库可以很好地处理纯文本(即为任何文本生成PDF文件),但在尝试将图像添加到我的PDF页面时,出现了
FPDF错误:缺少或不正确的图像文件:{MY_file_PATH}
。通过浏览器访问该文件路径,则相应的图像显示良好

我的代码是:

require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 16); $pdf->Write(10, 'Example image'); $image_path = MY_FILE_PATH; // This variable contains my actual file path $pdf->Image($image_path, 10, 10, 350, 450); $pdf->Output(); require('fpdf.php'); $pdf=新的FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Write(10,‘示例图像’); $image\u path=MY\u FILE\u path;//此变量包含我的实际文件路径 $pdf->Image($Image_path,10,10350450); $pdf->Output(); 这段代码在我的localhost中运行得很好,并且生成了相应的PDF文件,甚至还有图像,但是在移动到服务器之后就不起作用了

我尝试过以下几种可能性:

  • 具有图像的绝对路径和相对路径

  • 尝试将本地图像放置在同一文件夹中

  • 所有图像格式,如jpg、png和gif

  • 还检查了图像和相应文件夹的权限

  • 这些案例对我来说都不起作用,我被这个问题困住了,谁能帮我解决这个问题

    谢谢


    湿婆…

    经过长期的斗争,我终于找到了我已经讨论过的这个问题的原因

    这个问题主要是由于“allow\u url\u fopen”设置没有为我的服务器启用,我已经通过使用CURL解决了这个问题。我给出了解决这个问题的一步一步的程序,因为这可能对像我这样的人有用,以避免浪费时间(找到解决方案)

    1.在本地系统中创建具有写入权限的临时文件。 例如:$fp=@fopen($local_file_path,'x'); fclose($fp); 2.使用CURL获取远程位置文件内容并将其写入本地文件 这是在上一步中创建的。 例如:$curl=newcurlwrapper($remote\u file\u path); $curl->copyToFile($local\u file\u path); 3.现在将此本地文件路径发送到FPDF函数(图像),然后发送相应的 PDF将为文件生成,没有任何问题。 我认为这是解决这个问题的一种方法,如果有人知道其他一些方法,那么你可以将它们发布在这里,这样这个问题可能对某人有用。

    只需添加:

    允许\u url\u fopen=ON

    在php.ini上(如果不存在,则创建新的)解决了这个问题


    任何人都可以使用此代码进行求解。也许它会起作用。因为有些情况可能会有所不同。在我的情况下,我得到了相同的问题,但使用后。我解决了我的问题

    $pdf->Image($image_path, 10, 10, 350, 450 ,''); 
    

    尝试为$pdf->Image()函数的6个参数指定空字符串,或者可以指定文件扩展名,如(PNG或JPG)。在我的例子中,空字符串正在工作。因为我在裁剪图像,所以图像有时会出错。这样一来,我的问题就解决了,我用不同的图像进行了测试。

    你能给出一个你正在使用的示例路径吗?你可以以该路径为例。我们可以在FPDF中使用相对路径如“/test.jpg”吗?Pekka,感谢您的回复,找到了这个问题的原因并修复了那个问题。@user1638334,正如Nickhar所说,这导致我们在修复问题的过程中面临安全威胁,所以我觉得最好用另一种方式解决这个问题(例如:使用CURL)。为什么投反对票?我同意最好不要使用
    allow\u url\u include
    。但是,
    allow\u url\u fopen
    的这种安全威胁是什么?PHP甚至默认为on。
    $pdf->Image($image_path, 10, 10, 350, 450 ,'');