对于时事通讯脚本,我喜欢使用图像来检查它是否被读取。所以我们在脚本中制作了一个这样的图像:
<img src="[url]/getEmailImage/test/">
当这个url被触发时,它会注册邮件已打开。
在服务器端,我们使用这种巨大的机制:
// register that the email is read
$this->modelOpslag->changeByToken($token,array('gelezen' => '1'));
// download image and show is
$image = base_url().'external/afbeeldingen/pixel.jpg';
$info = getimagesize($image);
header('Content-Type: '.$info['mime']);
echo file_get_contents($image);
exit;
当我删除PHP头函数时,它显示如下内容:
����JFIF``��rExifMM*JR(1Z``paint.net 4.0.5��
等等。。。
在标题中,我的浏览器给出了错误:图像无法显示,因为它包含错误。
我做错了什么?
--编辑--
我没有这个特定问题的解决方案,但我找到了一个替代方案,以防有人喜欢在他们的时事通讯女巫作品中使用这种巨型主义:
$file = './external/afbeeldingen/pixel.jpg';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
如果我正确理解你的问题。。您正在尝试回显图像,使用回显无法显示图像。。你为什么不使用。。。
<img src="<?php echo file_get_contents($image); ?>" />
您需要不同的头来下载图像和动态显示图像。另外,php脚本的文件编码格式可能会导致图像数据损坏。