【发布时间】:2018-01-09 10:04:01
【问题描述】:
我正在使用 composer 包Piceq\Barcode 来生成条形码图像。我只是通过简单的测试代码开始使用它:
$barCode = new Picqer\Barcode\BarcodeGeneratorPNG();
$barCode = $barCode->getBarcode($inputs['code'], $barCode::TYPE_CODE_128);
ob_clean();
header('Content-Type: image/png');
echo $barCode;
$barCode 的内容类似于生成图像的二进制内容。问题是它以 text/html 的形式发送到浏览器。我错过了什么导致 HTTP 标头设置不正确?
【问题讨论】:
-
我的想法是标题被空白过早地发送。不确定你是否知道
ob_clean();请注意 -
不,我已经尝试删除标题中的空格,但仍然没有正确设置标题。根据我以前生成图像的经验,需要 ob_clean() ,但有时不需要它是对的。刚刚添加以确保不是额外的内容导致未设置标题。
-
另一方面,我有另一个生成二维码的函数,它在声明标题时有空间。所以不太可能是空间。
-
我已经检查过了,这个例子对我很有用。我认为以前的标头已经发送给客户端,因此您无法更改内容类型。 ob_clean 在这种情况下无能为力。
-
“不,我已经尝试删除标题中的空格” - 这不是他们的意思,他们的意思是你是否可能已经创建了输出(即使它是“只是” 空格)在此之前的任何位置。您是否启用了适当的 PHP 错误报告,以便在输出已经开始后尝试发出标头时 PHP 可以警告您?
标签: php http-headers barcode