我正在使用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文件,即使图像也是如此,但移动到服务器后这不起作用。
我尝试过这些可能性:
使用图像的绝对路径和相对路径。
尝试将同一文件夹放在同一文件夹中。
所有图片格式如jpg,png和gif也是。
同时检查图像和相应文件夹的权限。
这些案例都没有对我有用,坚持这个问题,任何人都可以帮我解决这个问题。
谢谢!
湿婆......
答案 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)。在我的情况下 空字符串 '' 正在工作。因为我正在裁剪图像,因此图像出现了一些错误。所以这样做之后我的问题就解决了,我用不同的图像进行了测试。