有没有办法让 PHP 检测损坏的图像?

发布于 2024-11-18 19:52:28 字数 86 浏览 2 评论 0原文

有没有办法让PHP判断图像文件是否损坏而无法正常显示?

我尝试使用 fopen 检查 URL 是否有效,但没有成功!

Is there any way to have PHP determine whether an image file is corrupted and will not be able to display properly?

I've tried to check with fopen and check whether the URL is valid, but it hasn't worked!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

爱你不解释 2024-11-25 19:52:28

有没有办法让 PHP 判断图像文件是否损坏

如果损坏是指损坏,则更改为 imagecreatefrom{extension} 也将无法读取它们:

if( imagecreatefromjpeg( $yourfile ) !== false ) {
    // image is okay.
}

Is there any way to have PHP determine whether an image file is broken

If by broken you mean corrupted, changes are the imagecreatefrom{extension} won't be able to read them either:

if( imagecreatefromjpeg( $yourfile ) !== false ) {
    // image is okay.
}
自控 2024-11-25 19:52:28

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>

Javascript solution (with involving jQuery, though this should be possible to do without it too):

<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>
满栀 2024-11-25 19:52:28

如果您指的是 404 中的损坏,而不是损坏的图像,您始终可以使用以下内容:

if (file_exists($imageFileName)) {
  ..
}

If you mean broken as in a 404, and not a corrupt image, you can always use something along the lines of:

if (file_exists($imageFileName)) {
  ..
}
预谋 2024-11-25 19:52:28

这对我来说 100% 有效:) 我通过 file_exists() 测试图像是否存在,如果存在,您将用它捕获损坏的图像。

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

This works for me 100% :) I test if image exists by file_exists() and if it exists, you will catch corrupted images with this.

<img src="your_image_source" onerror="this.src='/path/to/backup/file'">
生来就爱笑 2024-11-25 19:52:28

if the files are there on your server check using file_exists function in php

http://php.net/manual/en/function.file-exists.php

凉城凉梦凉人心 2024-11-25 19:52:28

查看所有最新损坏文件的一个好方法是使用 cpanel“错误日志”,它将显示所有最近 300 个损坏文件。

A great way to view all your latest broken files is to use cpanel "Error Log" which will show you all the last 300 broken files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文