有没有办法让PHP确定图像文件是否已损坏且无法正常显示?
我尝试检查fopen
并检查网址是否有效,但是没有效果!
答案 0 :(得分:19)
有没有办法让PHP确定图像文件是否已损坏
如果被破坏则意味着损坏,imagecreatefrom{extension}将无法读取更改:
if( imagecreatefromjpeg( $yourfile ) !== false ) {
// image is okay.
}
答案 1 :(得分:3)
如果你的意思是像404中那样破碎而不是腐败的形象,你可以随时使用以下内容:
if (file_exists($imageFileName)) {
..
}
答案 2 :(得分:3)
Javascript解决方案(涉及jQuery,虽然这应该可以不用它):
<script type='text/javascript'>
$(function(){
var files = [
'warning-large.png',
'warning-large-corrupted.png',
'http://www.example.com/none.gif',
'http://sstatic.net/stackoverflow/img/favicon.ico'
];
for ( var n in files ) {
var img = $('<img/>');
img.error(function(){
alert('error:\n' + this.src);
});
img.load(function(){
alert('success:\n' + this.src);
});
img.attr('src', files[n]);
}
});
</script>
答案 3 :(得分:1)
这适用于我100%:)我测试文件是否存在于file_exists(),如果它存在,你将用这个捕获损坏的图像。
<img src="your_image_source" onerror="this.src='/path/to/backup/file'">
答案 4 :(得分:0)
如果您的服务器上有文件,请使用php中的file_exists函数进行检查
答案 5 :(得分:0)
查看所有最新损坏文件的好方法是使用cpanel“错误日志”,它会显示所有最近300个损坏的文件。