FPDF错误:一些数据已输出,不能发送PDF文件(FPDF error: Some data has

2019-09-19 07:53发布

好,我得到这个错误尝试使用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();
?>

有没有空格或任何东西......那么,是错误???

Answer 1:

一些编辑器增加了BOM在文件的开始。

查看你的文件以十六进制和删除



Answer 2:

它是becouse两个原因

1-有开口之前没有前导空间2-是一些数据已被输出之前

2振振有辞的解决办法是去fpdf.inc.php

找到这个函式

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

然后在这个函数的认定中写在开始

ob_clean();  

这将清除以前的输出。



Answer 3:

对我来说,这是废弃警告。 我加了&〜E_DEPRECATED我的error_reporting在我的php.ini并重新启动Apache的。



Answer 4:

我只活了服务器同样的问题。 但它的工作,在本地机器。 在文件还其不工作服务器上开始添加BOM。 但是,在本地机器上工作。 一些变化需要在现场的代码。

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 - >输出(),你应该把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。

查看你的文件以十六进制和删除



文章来源: FPDF error: Some data has already been output, can't send PDF file
标签: php fpdf