首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:获取读取收据时显示实际图像

PHP:获取读取收据时显示实际图像
EN

Stack Overflow用户
提问于 2014-12-03 14:58:23
回答 2查看 473关注 0票数 0

因此,我正在努力获得一个电子邮件读取收据(Laravel和PHP),在这里,我试图更新DB中的一个字段,当电子邮件打开时。

描述

  1. 向用户发送电子邮件。
  2. 一旦用户读取邮件,在数据库中将消息状态从"unread“更新为"read”。

我已经添加了代码,以实现

  1. 向邮件正文发送消息id。
  2. 添加<img>标记,

代码语言:javascript
复制
<p><img src="http://www.xyzdomain.com/messagestatus/{{$id}}"></p>
  1. 在控制器中有一个用于上述url的路由的函数,这将为我执行DB更新。

问题

尽管当用户读取该邮件时,状态被成功地更新为"Read“。邮件正文中显示的图像被破坏了,因为我传递的是一个url而不是图像。有人能指点我怎么才能像一些透明的背景图像那样显示一些图像,而不显示一个破碎的图像。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-03 15:01:22

应该在DB更新之后重定向到图像文件。例如,在这个url中创建一个图像:

http://www.xyzdomain.com/img.png

(最好是1x1px透明图像)

然后,在您的DB更新使用header()重定向到此映像文件之后。

代码语言:javascript
复制
<?php

   ... some db updating code ...

   header('Location: http://www.xyzdomain.com/img.png');
   die();

 ?>

这样,您的客户电子邮件中的图像就不会被破坏。在更新数据库之后,它实际上将得到一个图像文件。

票数 0
EN

Stack Overflow用户

发布于 2014-12-03 15:34:07

如果您只是在更新后返回图像的内容(一个1x1小的透明映像),就可以避免重定向:

代码语言:javascript
复制
<?php
$image = 'image.png';
header('Content-type: image/png');
readfile($image);
exit;

当然,您必须返回正确的mime类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27274851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档