Извлекаем изображение из mp3 с помощью PHP
В одном моем сервисе можно вытащить картинку из mp3. В данном материале я покажу, как это делается с помощью PHP. Также, так как существует возможность загрузки файлов на сервер, то мы коснемся и вопроса безопасности.
Итак, нам требуется библиотека getID3(). Вот вам прямая ссылка на те файлы, которые требуются. Качаем, распаковываем. Подключаем библиотеку:
require_once('./lib/getid3/getid3.php');Далее вот такой код:
$uploaddir = './file/'; $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']); if($_FILES["uploadfile"]["type"]=="audio/mp3"){ if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile)) { $path="./file/".$_FILES['uploadfile']['name']; $getID3 = new getID3; $FileInfo = $getID3->analyze($path); $im = ‘’; if(isset($FileInfo['comments']['picture'][0])){ $Image='data:'.$FileInfo['comments']['picture'][0]['image_mime'].';charset=utf-8;base64,'.base64_encode($FileInfo['comments']['picture'][0]['data']); echo '<img src="'.$im.'" />'; } else unlink($path="./lib/files/".$_FILES['uploadfile']['name']); } }В первых двух строках определяем переменную для каталога загружаемого файла, его имя. Далее, в третьей, проверяем, является ли на самом деле загруженный файл mp3. В четвертой строке копируем файл и если все в порядке – задаем ему новый путь. Самое интересное происходит в 11 строке – там мы залезаем в MIME и извлекаем оттуда картинку. Картинка будет в base64 – я уже писал об этом методе в одной из своих статей. В общем, и все. Если ничего не получилось, то на всякий случай удаляем наш файлик в 14 строке.
Если вас что-то интересует по теме данной заметки или по работе PHP вообще, то вы всегда можете написать мне на почту up777up@yandex.ru или связаться со мной в социальных сетях. Я не работаю бесплатно, но беру очень небольшие деньги за помощь; всегда можем поторговаться и придти к разумному компромиссу. Пишите.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.