В настоящее время пользователи могут загружать изображения на мой сайт, а местоположение изображения хранится в таблице MySQL.
Когда я вызываю изображения с помощью функции SELECT, они загружаются через стиль CSS Фоновое изображение: URL ( ‘image.jpg’)
В настоящее время я использовал оператор IF, который помещает изображение-заполнитель вместо строк, для которых столбец «Image_URL» имеет значение NULL.
if ($row["Image"] != "") {
echo "<td width='200' rowspan='3'><center><a href='/uploads/".$row["Image"]."' target='_blank'><div class='image-cropper'><div class='rounded' style='background-image:url(\"/uploads/".$row["Image"]."\")'>";
} else {
echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg\")'";
}
Мой метод, однако, не работает для ошибочных ссылок (если исходное изображение было удалено или по какой-то причине ссылка неверна.) Он просто показывает пустым, и я понимаю, почему, потому что $ row [«Image»]! = NULL, там есть ссылка, просто нет ссылки на изображение.
Можно ли загрузить изображение-заполнитель no-image.jpg, если по указанной ссылке не найдено ни одного изображения?
Мои DIV предназначены только для того, чтобы сделать мои изображения круглыми и центрированными, поэтому я публикую их здесь на случай, если это поможет, вы можете помочь мне адаптировать эти классы для добавления функциональности заполнителя.
.image-cropper {
max-width: 150px;
height: auto;
position: relative;
overflow: hidden;
}
.rounded {
display: block;
margin: 0 auto;
height: 150px;
width: 150px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
-ms-border-radius: 50%;
-o-border-radius: 50%;
border-radius: 50%;
background:center no-repeat;
background-size:cover;
}
Изображение-обрезка и округленный DIV на самом деле с этого сайта, так что спасибо Hiral!
Мне удалось заставить его работать с помощью file_exists
после использования glob
,
Но спасибо Стюартсайду за то, что он поставил меня на правильный путь, а также структурировал if
заявление.
Это код сейчас:
$image = $row["Image"];
if ($row["Image"] != "") {
if (file_exists('uploads/'.$image)) {
echo "<td width='200' rowspan='3'><center><a href='/uploads/".$row["Image"]."' target='_blank'><div class='image-cropper'><div class='rounded' style='background-image:url(\"/uploads/".$row["Image"];
} else {
echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg";
}
} else {
echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg";
}
Я предполагаю, что следующее также будет работать:
if (file_exists('uploads/'.$row["Image"])) {
Спасибо всем за помощь! 🙂
Вы могли бы использовать glob()
функция, чтобы узнать, существует ли файл.
Что-то вроде этого:
if ($row["Image"] != "") {
var $file = glob("/uploads/".$row["Image"]);
if (count($file) > 0) {
echo "<td width='200' rowspan='3'><center><a href='/uploads/".$row["Image"]."' target='_blank'><div class='image-cropper'><div class='rounded' style='background-image:url(\"/uploads/".$row["Image"]."\")'>";
} else {
echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg\")'";
}
} else {
echo "<td width='200' rowspan='3'><center><a><div class='image-cropper'><div class='rounded' style='background-image:url(\"/images/no-image.jpg\")'";
}