FPDF错误:图像文件丢失或不正确

时间:2010-07-05 07:20:03

标签: php fpdf

我正在使用FPDF库通过PHP生成PDF文件。这个库可以正常工作(即为任何文本生成PDF文件),但在尝试将图像添加到我的PDF页面时,这会给我FPDF error: Missing or incorrect image file:{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();

此代码在我的localhost中完美运行并生成相应的PDF文件,即使图像也是如此,但移动到服务器后这不起作用。

我尝试过这些可能性:

  1. 使用图像的绝对路径和相对路径。

  2. 尝试将同一文件夹放在同一文件夹中。

  3. 所有图片格式如jpg,png和gif也是。

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

  5. 这些案例都没有对我有用,坚持这个问题,任何人都可以帮我解决这个问题。

    谢谢!

    湿婆......

3 个答案:

答案 0 :(得分:4)

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

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

1. Create a temporary file in the local system with write permission.

Ex: $fp = @fopen($local_file_path, 'x'); 
    fclose($fp);

2. Get the remote location file contents using CURL and write that to local file 
which is created in the previous step.

Ex: $curl = new CurlWrapper($remote_file_path);
    $curl->copyToFile($local_file_path);

3. Now send this local file path to FPDF function(image) then the corresponding 
PDF will get generate for the file without any issues.

我认为这是解决这个问题的一种方法,如果有人知道其他方法,那么你可以在这里发布这些问题,以便这个问题对某些人有用。

答案 1 :(得分:1)

只需添加:

allow_url_fopen = ON

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

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

答案 2 :(得分:0)

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

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

尝试给 $pdf->Image() 函数的 6 个参数提供空字符串,或者你可以给文件扩展名(PNG 或 JPG)。在我的情况下 空字符串 '' 正在工作。因为我正在裁剪图像,因此图像出现了一些错误。所以这样做之后我的问题就解决了,我用不同的图像进行了测试。