Укажите, приводит ли изображение URL к нулю - PullRequest
0 голосов
/ 07 мая 2018

Я разрабатываю сайт, который отображает значок любой песни на сервере. Я создал php-файл, который возвращает изображение песни, если она существует. Мой код в HTML:

<img src="/image.php?song=SongName" width="100" height="100">

Если у данной песни есть значок обложки, то элемент img показывает значок. Если это не так, я получаю пустую коробку img 100x100.

Теперь я хочу указать в javascript, если URL-адрес: '/image.php?song=SongName' возвращает ноль (если в песне нет обложки), чтобы скрыть изображение. Как этого добиться?

Спасибо.

PS. Код, который я пробовал до сих пор (есть немного php для формирования img url):

var picElement = document.getElementById("picture");
picElement.src = "/image.php?song=$nameFile";
if(picElement.src == null){
    picElement.style.display = "none";
}else if(picElement.src !=null){
    picElement.src = "/image.php?song=$nameFile";
    picElement.style.height = "20vh";
    picElement.style.width = "20vh";
    picElement.style["boxShadow"] = "3px 3px 10px 1px #e2b674";
}

Код php под image.php:

<?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]))
{
    header('Content-Type: ' . $OldThisFileInfo['comments']['picture'][0]['image_mime']);
    echo $OldThisFileInfo['comments']['picture'][0]['data'];
    die;
}?>

1 Ответ

0 голосов
/ 07 мая 2018

Если вы хотите обрабатывать отображение изображения по умолчанию, используя только разметку, вы можете добавить атрибут onerror="this.src='/image.php?song=Default'" или аналогичный для каждого изображения:

<img src="/image.php?song=SongName" onerror="this.src='/image.php?song=Default'" width="100" height="100"/>

Предполагается, что /image.php будет правильно возвращать ошибку 404, когда изображение не найдено, вместо отображения самого изображения по умолчанию.

Обновление

Следуя вашему PHP-коду, вы можете захотеть просто отобразить название песни в HTML вместо JavaScript:

<img src="/image.php?song=<?PHP echo $nameFile; ?>" onerror="this.style.display='none'" width="100" height="100" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...