替换网站中的错误图像

       网站开发的时候,经常会遇到一些图像是动态从数据库中取出来得。这时候这些图片的不确定性就很大了,可能是不存在的图,这时候就会影响网站整体的美观性。想想挺美的一个网站就因为一张图片显示不出来而出现一个叉叉?多纠结啊~

       很多开发人员会用一张静态的图片代替哪些路径错误的图片。在给img的src赋值之前先检查图片是否存在,如果不存在,就用默认图片替代,如果存在就直接给src赋值。php中检查图片路径是否存在的代码如下:
    if(file_exists(getcwd().$path)&& $path!=NULL){
            return $path;
        }else{
           
            return $defaultFilePath;
        }

      这种方法只能检查错误的图片url,不能够检查不完整的图片的url。举个例子:如果数据库中获取出来的url的是"/image/",而你网站中又存在image目录,这时候显示出来的图片路径就是错误的。当然你可以做进一步验证,比如读取文件大小,如果文件的大小<=0的时候,说明图片不存在。但是如果你有一千万条记录,每条记录在显示的时候都做一次检查,这样就会导致网页加载的速度很慢。

      后来在网上发现一种很好的解决方案,你只需要在img元素中加入onerror,如果错误通过js去重新指定src:<img src="<?php echo $path;?>"  onError="this.src='<?php echo $defaultFilePath;?>'">。既方便也简洁~


       ps:Image 对象的属性 onerror 声明了一个事件句柄函数,当装载图像的过程中发生了错误时就会调用这个句柄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章