2012-01-18 43 views
3

我有一个页面显示来自不同远程服务器的大量图像。 http://example.com/img/email_star0.png'height ='150'/>如何检测损坏的图像并用另一个替换?

现在假设这个图像不存在,我在我的html中得到一个(x)。有无论如何,我可以检测到这个图像不存在,并用本地图像替换这个(x),而不必检查该文件是否存在于使用Curl的远程服务器上(或使用JQuery来处理),从而节省时间?这可以在本地完成吗?

感谢您的帮助

+0

所以没有办法检测图像是否可用(在服务器端),如果不是,请用本地图像替换它? – ppp 2012-01-18 13:34:27

+0

@David什么将是一个有效的PHP方式来做这个检查? – ppp 2012-01-18 13:38:25

回答

15

是的,这是可能的使用onerror事件:

<img src="your_image_source" onerror="this.src='/path/to/local/file'"> 

如果不存在图像,而不是显示X,这会显示默认的图像在您的本地文件夹

+0

WIN的模糊HTML属性!你是老板!! – 2012-01-18 13:39:04

+1

今天早上教我一些关于HTML的内容。 :-) – FtDRbwLXw6 2012-01-18 13:40:24

+0

感谢您的好意致意:) – Ninja 2012-01-18 13:41:06

2

我不认为这是可能的检查,如果远程服务器上存在的图像,而无需使用卷曲或jQuery的。但jQuery snippet bellow对图像加载错误作出反应,将其替换为本地图像,也许这就是您要查找的内容。

$(document).ready(function(){ 
    $('img').error(function(){ 
    $(this).attr('src', 'http://mysite/myimage.jpg'); 
    }); 
}); 
2

你可以直接在图像标签中使用'onerror'属性:

<img src="my_images.jpg" onerror="this.src='my_replacement.jpg'">