我有一段代码可以在服务器上创建正确的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();
$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"');
编辑: 以下是代码现在的正确内容类型和正确的输出函数放置:
$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');
但错误仍然存在。
答案 0 :(得分:0)
将内容类型更改为application/pdf
,并确保在标题之前发送数据:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="tokens.pdf"');
$pdf->Output('tokens.pdf','F');
答案 1 :(得分:0)
你需要冲洗你的缓冲区。
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Cell(40, 10, 'Hello World!');
$pdf->Output('I');
ob_flush();