PHP pdf创建将pdf下载为已损坏
我有一段代码可以在服务器上创建正确的pdf,但当我尝试下载它时,它会下载为已损坏:PHP pdf创建将pdf下载为已损坏,php,pdf,fpdf,Php,Pdf,Fpdf,我有一段代码可以在服务器上创建正确的pdf,但当我尝试下载它时,它会下载为已损坏: for($i = 0 ; $i < $num_tokens ; $i++){ #$tokens[$i] = pronto_aes_decrypt( $token_crypt[$i] , $prontoKey ); $tokens[$i] = pronto_aes_decrypt( $token_crypt[$i] , $prontoKey ); $pdf->AddPage(
for($i = 0 ; $i < $num_tokens ; $i++){
#$tokens[$i] = pronto_aes_decrypt( $token_crypt[$i] , $prontoKey );
$tokens[$i] = pronto_aes_decrypt( $token_crypt[$i] , $prontoKey );
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,$tokens[$i]);
}
unlink("tokens.pdf");
$pdf->Output('tokens.pdf','F');
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="tokens.pdf"');
for($i=0;$i<$num_令牌;$i++){
#$tokens[$i]=pronto_aes_decrypt($token_crypt[$i],$prontoKey);
$tokens[$i]=pronto_aes_decrypt($token_crypt[$i],$prontoKey);
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,$tokens[$i]);
}
取消链接(“tokens.pdf”);
$pdf->Output('tokens.pdf','F');
标题(“内容类型:文本/csv”);
标题('Content-Disposition:attachment;filename=“tokens.pdf”');
编辑:
下面是代码在正确的内容类型和正确的输出函数位置下的外观:
$pdf = new FPDF( );
for($i = 0 ; $i < $num_tokens ; $i++){
$tokens[$i] = pronto_aes_decrypt( $token_crypt[$i] , $prontoKey );
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,$tokens[$i]);
}
unlink("tokens.pdf");
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="tokens.pdf"');
$pdf->Output('tokens.pdf','F');
$pdf=new FPDF();
对于($i=0;$i<$num_令牌;$i++){
$tokens[$i]=pronto_aes_decrypt($token_crypt[$i],$prontoKey);
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,$tokens[$i]);
}
取消链接(“tokens.pdf”);
标题(“内容类型:应用程序/pdf”);
标题('Content-Disposition:attachment;filename=“tokens.pdf”');
$pdf->Output('tokens.pdf','F');
但错误仍然存在。将内容类型更改为
application/pdf
,并确保在标题之前发送数据:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="tokens.pdf"');
$pdf->Output('tokens.pdf','F');
你需要刷新你的缓冲区
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Cell(40, 10, 'Hello World!');
$pdf->Output('I');
ob_flush();
嗯,为什么要为pdf文件设置
内容类型:text/csv
,并且$pdf->Output(…)
在哪里发送pdf数据?您需要在此之前而不是之后发送适当的标题。请确保您自己的代码中没有任何内容生成任何屏幕输出。我确实将内容类型更改为正确的类型,并且在内容标题后设置了$pdf->Output命令,但我仍然遇到了相同的问题。我按照您所说的做了,但仍然出现了“文件类型纯文本文档(text/plain)不受支持”错误。不过,在服务器上创建的pdf是正确的。