php - 使用 getID3 在浏览器中显示图像
问题描述
我想创建一个 php 文件,该文件在 html 的 img 标记中作为 src 参数调用时将返回 mp3 歌曲的图像。像这样的东西:
<img src="/imageReturn.php?song=SongName">
为了从 mp3 文件中获取图像,我使用了 getID3 库。我的PHP代码:
$song= $_GET["song"];
require_once("getID3-1.9.15/getid3/getid3.php");
$Path=$song.".mp3";
$getID3 = new getID3;
$OldThisFileInfo = $getID3->analyze($Path);
if(isset($OldThisFileInfo['comments']['picture'][0]))
{
$ImageBase='data:'.$OldThisFileInfo['comments']['picture'][0]['image_mime'].';charset=utf-8;base64,'.base64_encode($OldThisFileInfo['comments']['picture'][0]['data']);
}
header('Content-Type: image/jpeg');
echo $ImageBase;
问题是我无法让 php 显示图像。如何解决?
解决方案
您不必将图像编码为base64,您可以直接echo
将图像数据。
$getID3 = new getID3;
$OldThisFileInfo = $getID3->analyze($Path);
if(isset($OldThisFileInfo['comments']['picture'][0]))
{
header('Content-Type: ' . $OldThisFileInfo['comments']['picture'][0]['image_mime']);
echo $OldThisFileInfo['comments']['picture'][0]['data'];
die;
}
推荐阅读
- docker - 如何在谷歌云上安排 docker 运行
- amazon-web-services - DynamoDB 未按排序键排序
- python - 如果传递了特定输入并跳过代码结尾,则尝试立即重新启动方法
- angular - 我无法在 Angular 7 中与 formGroup 进行绑定
- object - 调用/访问静态变量或方法
- java - 在 XML 中替换元素和属性值的最快和最有效的方法
- mysql - 语法过程 Mysql
- javascript - 无法从节点呈现 Angular 构建的静态 html
- android - 无法解决:firebase-crash-15.0.0
- javascript - 我的 API 错误地报告 GitHub Pages 的 IP 是私有的。如何解决此问题并获得真实 IP?