我需要创建一个pdf文件,并通过POST请求发送到服务器。对于创建pdf,代码是非常简单的
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output("mypdf.pdf");
为了张贴,我阅读了的pdf文件
$file_contents = file_get_contents("mypdf.pdf");
有没有一种方法可以让我不必先写入文件,然后再从中读取?的一些方法
$file_contents = $pdf->Output();
如果我答对了问题,你想要数据流吗?
如果是,则Output()
取2个参数,即name and destination
。发送S
作为目的地参数将返回pdf数据的string
。
所以,保留你的代码
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$file_contents = $pdf->Output("mypdf.pdf","S");
源
根据fdf Output()
文档:
Output([string name, string dest])
名称
文件的名称。如果未指定,文档将发送到浏览器(目的地I),名称为doc.pdf。
dest
发送文档的目的地。它可以采用以下值之一:
- I: 将文件内联发送到浏览器。如果可用,则使用该插件。当在生成PDF的链接上选择"另存为"选项时,将使用由名称给定的名称
- D: 发送到浏览器,并强制使用名称指定的名称下载文件
- F: 保存到本地文件,该文件的名称由名称给定(可能包括路径)
- S: 将文档作为字符串返回。名称被忽略
因此,如果您想将文件内容传递给变量,请使用:
$pdf_file_contents = $pdf->Output("","S");