如何将base64 png图像发送到PHP

时间:2013-02-19 17:00:56

标签: php jquery image base64 fpdf

我有一个base64 png图片 我想在FPDF中使用它

我这样创建:

var dataURI = canvas.toDataURL("image/png");

并将其发送到FPDF,如下所示:

$('#send').click(function(e){
    e.preventDefault(); 
    var uri = "create_pdf.php?imgURI="+ dataURI;
    window.open ( uri, "Temp wind" );
});

create_pdf.php里面我有:

require('fpdf.php');

$img = $_GET['imgURI'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);

$pdf = new FPDF();
$pdf->AddPage();
$pdf->Image( $data, 0, 0, 200 );

$pdf->Output( "myimage.pdf", 'D' );

我没有保存PDF的常规提示,而是收到此错误:

  

图片文件没有扩展名,也没有指定类型: PNGIHDRSJ IDATx......

如何正确发送base64编码的图像?

2 个答案:

答案 0 :(得分:1)

似乎pdf将保存的图像作为参数,而不是base64 尝试回答here

答案 1 :(得分:0)

FPDF image()函数根据应包含文件路径的$ file字符串检查文件类型。如果您在可选参数中提供类型'png',则可以克服此部分。

之后,FPDF将尝试在其_parsepng和_parsejpg函数中打开$ file,以便您可以轻松使用数据包装器 http://www.php.net/manual/en/wrappers.data.php

$fpdf->Image('data://image/png;base64,'.$image_data,null, null, 0, 0, 'png');