FPDF错误:某些数据已经输出,无法发送PDF文件

时间:2012-07-10 21:58:39

标签: php fpdf

我尝试使用php类FPDF时遇到此错误:

FPDF error: Some data has already been output, can't send PDF file (output started at
/mnt/webc/e1/12/5691512/htdocs/adminpanel/fpdf/test.php:1)

我的test.php

<?php
require_once("fpdf.php");
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

没有空白或任何东西......那么错误在哪里???

4 个答案:

答案 0 :(得分:2)

有些编辑在文件开头添加BOM

以十六进制格式查看文件并将其删除

答案 1 :(得分:0)

这是因为两个原因

1 - 开幕前没有领先空间 2 - 是在

之前输出的一些数据

2共振的解决方案是 转到fpdf.inc.php

找到这个功能

function Output($name='', $dest='') {   

然后在这个函数的定义中,在开始时写这个

ob_clean();  

这将清除先前的输出。

答案 2 :(得分:0)

对我来说,这是弃用警告。我添加了&amp; ~E_DEPRECATED到我在php.ini中的error_reporting并重新启动Apache。

答案 3 :(得分:-1)

我在Live Server中遇到了同样的问题。但它在本地机器上工作。在文件的开头添加BOM也在Server上不起作用。但在本地机器工作。您的实时代码需要进行一些更改。

<强> 1。将ob_start()放在文件的第一行。

示例:

ob_start();    
$DOCROOTPATH = $_SERVER['DOCUMENT_ROOT'];   
$DOCROOTBASEPATH = dirname($_SERVER['DOCUMENT_ROOT']);    
include_once($DOCROOTPATH."/lib/commonarray.inc");    
include_once($DOCROOTPATH."/includes/class.payslip.php");    
include_once($_SERVER['DOCUMENT_ROOT']."/menucontrol.php");    

define('FPDF_FONTPATH','fpdf/font/');    
require('fpdf/fpdf.php');    

<强> 2。在$ pdf-&gt; Output()之后,您应该将ob_end_flush()放在同一个文件中。

示例:

$pdf=new PDF();     
$pdf->Open();     
$pdf->AliasNbPages();     
$pdf->AddPage();     
$pdf->SetFont('Times','',12);     
$pdf->pdfAllPages();      
$pdf->Output();      
ob_end_flush();     

现在点击浏览器,查看你想要的PDF格式。

(OR) 有些编辑在文件的开头添加 BOM

以十六进制格式查看文件并将其删除