簡體   English   中英

圖像占位符用於斷開圖像鏈接?

[英]Image Placeholder for Broken Image Link?

目前,用戶可以將圖像上傳到我的網站,圖像的位置存儲在MySQL表中。

當我使用SELECT函數調用圖像時,它們通過CSS樣式background-image: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

在設法使用glob之后,我設法使用file_exists讓它工作。

但是,感謝Stewartside讓我走上正確的道路,並構建了由此產生的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\")'";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM