因此,我正在努力获得一个电子邮件读取收据(Laravel和PHP),在这里,我试图更新DB中的一个字段,当电子邮件打开时。
描述
我已经添加了代码,以实现
<img>
标记,<p><img src="http://www.xyzdomain.com/messagestatus/{{$id}}"></p>
问题
尽管当用户读取该邮件时,状态被成功地更新为"Read“。邮件正文中显示的图像被破坏了,因为我传递的是一个url而不是图像。有人能指点我怎么才能像一些透明的背景图像那样显示一些图像,而不显示一个破碎的图像。
提前谢谢。
发布于 2014-12-03 07:01:22
应该在DB更新之后重定向到图像文件。例如,在这个url中创建一个图像:
(最好是1x1px透明图像)
然后,在您的DB更新使用header()
重定向到此映像文件之后。
<?php
... some db updating code ...
header('Location: http://www.xyzdomain.com/img.png');
die();
?>
这样,您的客户电子邮件中的图像就不会被破坏。在更新数据库之后,它实际上将得到一个图像文件。
发布于 2014-12-03 07:34:07
如果您只是在更新后返回图像的内容(一个1x1小的透明映像),就可以避免重定向:
<?php
$image = 'image.png';
header('Content-type: image/png');
readfile($image);
exit;
当然,您必须返回正确的mime
类型。
https://stackoverflow.com/questions/27274851
复制