首页 > 解决方案 > 使用 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 显示图像。如何解决?

标签: phpgetid3

解决方案


您不必将图像编码为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;
}

推荐阅读