Я пытаюсь получить изображение из базы данных и отобразить его на своем веб-сайте, и все работает так, как я хочу, но теперь у меня возникла эта крошечная проблема, когда изображение не имеет названия или оно содержит ошибки (например, ошибка 404) , что я получаю уродливый крошечный сломанный значок изображения.
Могу ли я заставить его работать, чтобы я получал изображение по умолчанию, когда я получаю ошибку? Я попробовал это, но это работало только там, где еще не было задано имя.
if(!empty($filename)){ echo $filename;} else{ echo "pf.png"; }
Вставьте это в тег изображения:
onerror="this.src='[img src]'"
Поскольку вы говорите, что он работает с «pf.png», я предполагаю, что вы по крайней мере правильно используете имя файла. Таким образом, если вы получите это поврежденное изображение, это означает, что ресурс не может быть загружен, потому что он не существует или не может быть получен.
Поэтому вы также должны проверить, что изображение существует, прежде чем пытаться использовать его так или иначе:
if(!empty($filename) && file_exists($filename) {
echo $filename;
} else {
echo "pf.png";
}
Чтобы сделать это, я должен проверить, существует ли файл. Вы не сможете сделать это, если ссылка на изображение находится над «http: /www.*»
Код Clément Malet выше работает нормально.
Вы можете прочитать больше о функции file_exitsts здесь:
http://php.net/manual/en/function.file-exists.php
Если ссылка на изображение находится над «http: /www.*», вы можете использовать jquery.
Поместите этот код перед </body>
Не забудьте включить JQuery
$(document).ready(function(){
$("img").error(function(){
$(this).attr("src", "http://google.dk/default.php");
})
.each(function() {
$(this).attr("src",$(this).attr("src"));
});
})