网站首页> 后端开发> PHP> php发送/显示 base64 编码图像

php发送/显示 base64 编码图像

时间:2023-10-10 18:10:26 阅读:515次 来源:互联网

我需要向客户端发送一个 base64 编码的字符串。因此,我打开并读取服务器上的图像文件,对其进行编码并将该数据与 image/jpeg 内容类型一起发送到浏览器。 PHP 示例:

$image      = $imagedir . 'example.jpg'; 
$image_file = fopen($image, 'r'); 
$image_data = fread($image_file, filesize($image)); 
header("Content-type: image/jpeg"); 
echo 'data:image/jpeg;base64,' . base64_encode($image_data); 

客户端,我正在调用:

var img     = new Image(); 
img.src     = "http://www.myserver.com/generate.php"; 
img.onerror = function(){alert('error');} 
$(img).appendTo(document.body); 

由于某种原因,这不起作用。 onerror 总是触发。例如,观察 FireBug Network task 告诉我我收到了正确的 header 信息和正确的传输字节值。

如果我将该数据作为 Content-type: text/plain 发送,它会工作,base64 字符串将显示在浏览器中(如果我直接调用脚本)。将该输出复制并粘贴到 src 元素的 <img> 中会按预期显示图像。

我在这里做错了什么?

解决方案

感谢 Pekka 指出我的错误。您不需要(您不能!)以这种方法将二进制图像数据编码为 base64 字符串。没有 base64 编码,它就可以工作。

请您参考如下方法:

如果您将内容类型设置为 image/jpeg,您应该只提供 jpeg 数据,而没有 base64 废话。但是您将结果视为 html。

您正在有效地构建一个数据 uri,这没问题,但正如您所指出的,仅作为一个 uri。所以保持内容类型不变 (text/html),并且

echo '<img src="data:image/jpeg;base64,'.base64_encode($image_data).'">';

本文地址:https://www.manongw.com/article/501.html

文章来源:码农网

版权申明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 ezhongheng@126.com 举报,一经查实,本站将立刻删除。

相关文章
  • 本文主要介绍了深思 PHP 数组遍历的差异(array_diff 的实现)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-09-27 08:54
  • 本文主要介绍了PHP safe_mode开启对于PHP系统函数有什么影响的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-10 16:48
  • 本文主要介绍了PHP重载基础知识回顾的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-10 21:33
  • 本文主要介绍了PHP dirname功能及原理实例解析的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-29 09:17
  • 本文主要介绍了PHP 获取13位时间戳的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-09-27 10:33
  • 本文主要介绍了PHP 数组转字符串,与字符串转数组的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-09-27 10:43
  • 本文主要介绍了PHP如何通过date() 函数格式化显示时间的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-13 15:34
  • 本文主要介绍了PHP获取类私有属性的3种方法的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-10 21:47
  • 本文主要介绍了PHP延迟静态绑定使用方法实例解析的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-10 21:56
  • 本文主要介绍了php实现图片压缩处理的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-10 21:49