Извлекаем изображение из 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 или связаться со мной в социальных сетях. Я не работаю бесплатно, но беру очень небольшие деньги за помощь; всегда можем поторговаться и придти к разумному компромиссу. Пишите.

слоник php
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, php, mp3, загрузка файлов




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Миллион под ногами
.NET исключения: иерархия
C#: NaN и IsNaN