为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Image header() 和 readfile() 在 PHP 页面上显示 Base64

使用 Image header() 和 readfile() 在 PHP 页面上显示 Base64

PHP
慕的地10843 2023-04-21 10:31:46
我正在编写一个脚本,在对 PHP 函数进行一些操作后,我base64在$base64Image变量中生成图像数据。现在我想base64在网络浏览器上将该图像数据显示为完整图像,与image.jpeg. 为此,我写了一些代码,如下所示......截图.php<?php/*------------------------// Basic PHP Operations //------------------------*/// Get URL Parameters$key1 = $_GET["key1"];$key2 = $_GET["key2"];// Some PHP Operations...........................................................................// An Example base64 Image Else This Variable Will Be Filed After Some PHP Operations// Convert base64 Image to Real Image$imageFile = base64_decode($base64Image);// Get Image filesize For Header$filesize = filesize($imageFile);/*-------------------------------------------------// Image Output (Convert PHP File In Image File) //-------------------------------------------------*/header( 'Pragma: public' );header( 'Expires: 0' );header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );header( 'Cache-Control: private',false );header( 'Content-Disposition: attachment; filename="screenshot.png"' ); // Default File Name Will Be "screenshot.png"header( 'Content-Transfer-Encoding: binary' );header('Content-Type: image/png');      // Becasue Base64 Image Is Of PNG Type Fixedheader( 'Content-Length: '.$filesize );readfile( $imageFile );?>我正在尝试在 HTML 文件中显示上图,如下所示。截图.html<img src="screenshot.php?key1=value1&key2=value2" alt="screenshot"/>经过所有这些尝试,我仍然无法直接在.php页面或.html页面中看到我的图像。无论如何提前感谢。注意: 我不想强制下载图像。即使有人试图打开screenshot.php,它也应该在浏览器页面上显示图像而不是下载。
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您不能在字符串上使用 filesize(),Content-Disposition: attachment 标头也会强制下载。


将 base64 下的所有内容更改为:


header( 'Pragma: public' );

header( 'Expires: 0' );

header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );

header( 'Cache-Control: private',false );

header( 'Content-Transfer-Encoding: binary' );

header('Content-Type: image/png');      // Becasue Base64 Image Is Of PNG Type Fixed

echo $imageFile

我什至不确定你是否需要这些标头中的大部分,当我测试它时我只是使用了 Content-Type。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信