【问题标题】:FPDF error: Missing or incorrect image fileFPDF 错误:图像文件丢失或不正确
【发布时间】:2011-03-11 19:12:39
【问题描述】:

我正在使用 FPDF 库通过 PHP 生成 PDF 文件。这个库可以很好地处理纯文本(即为任何文本生成 PDF 文件),但是在尝试将图像添加到我的 PDF 页面时,这给了我一个 FPDF error: Missing or incorrect image file:{MY_FILE_PATH} 错误。通过浏览器访问该文件路径,则相应的图像显示正常。

我的代码是:

要求('fpdf.php'); $pdf = 新的 FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 16); $pdf->Write(10, '示例图片'); $image_path = MY_FILE_PATH; // 这个变量包含我的实际文件路径 $pdf->Image($image_path, 10, 10, 350, 450); $pdf->输出();

此代码在我的本地主机中运行良好,并且即使使用图像也可以生成相应的 PDF 文件,但是在移动到服务器后这不起作用。

我已经尝试过这些可能性,例如:

  1. 具有图像的绝对路径和相对路径。

  2. 尝试使用放置在同一文件夹中的本地图像。

  3. 所有图像格式,如 jpg、png 和 gif。

  4. 还检查了图像和相应文件夹的权限。

这些案例都不适合我,被这个问题困扰,谁能帮我解决这个问题。

谢谢!

湿婆...

【问题讨论】:

  • 你能展示一个你正在使用的示例路径吗?
  • 可以以路径desicomments.com/user/2008/03/7139/good.jpg为例。我们可以在 FPDF 中使用像“/test.jpg”这样的相对路径吗?
  • Pekka,感谢您的回复,找到了这个问题的原因并解决了这个问题。

标签: php fpdf


【解决方案1】:

经过长时间的挣扎,我终于找到了这个问题的原因,我已经讨论过here

这个问题主要是由于我的服务器没有启用“allow_url_fopen”设置,我已经通过使用 CURL 解决了这个问题。我正在逐步解决这个问题,因为这可能对像我这样的人有用,以避免浪费时间(寻找解决方案)。

1.在本地系统中创建一个具有写权限的临时文件。 例如:$fp = @fopen($local_file_path, 'x'); fclose($fp); 2. 使用 CURL 获取远程位置文件内容并将其写入本地文件 这是在上一步中创建的。 例如:$curl = new CurlWrapper($remote_file_path); $curl->copyToFile($local_file_path); 3. 现在将此本地文件路径发送到 FPDF 函数(image) 然后对应 将为文件生成 PDF,没有任何问题。

我认为这是解决此问题的一种方法,如果有人知道其他方法,那么您可以在此处发布它们,以便此问题可能对某人有用。

【讨论】:

    【解决方案2】:

    只需添加:

    allow_url_fopen = 开启

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

    http://www.solo-technology.com/blog/2010/04/07/quick-fix-for-url-file-access-is-disabled-issues/

    【讨论】:

    • @user1638334,正如 Nickhar 所说,这导致我们在解决问题的过程中面临安全威胁,所以我觉得最好以不同的方式解决这个问题(例如:使用 CURL)。跨度>
    • 为什么投反对票?我同意allow_url_include 最好不要。但是来自allow_url_fopen 的安全威胁是什么? PHP 甚至默认开启。
    【解决方案3】:

    任何人都可以使用此代码进行求解。也许它会起作用。因为有时某些情况可能会有所不同。就我而言,我遇到了同样的问题,但在使用后。我解决了我的问题..

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

    尝试为 $pdf->Image() 函数的 6 个参数提供空字符串,或者您可以提供文件扩展名,例如(PNG 或 JPG)。在我的情况下 empty string '' 正在工作。因为我正在裁剪图像,所以图像有时会出错。所以在那之后我的问题就解决了,我用不同的图像进行了测试。

    【讨论】:

      猜你喜欢
      • 2012-07-27
      • 2014-09-10
      • 2017-09-10
      • 2020-09-19
      • 2017-09-09
      • 2016-05-08
      • 1970-01-01
      • 2022-08-04
      • 2015-12-31
      相关资源
      最近更新 更多