Is there any way to have PHP detect a corrupted image?

后端 未结 6 982
余生分开走
余生分开走 2020-12-18 07:17

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

相关标签:
6条回答
  • 2020-12-18 07:29

    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.
    }
    
    0 讨论(0)
  • 2020-12-18 07:31

    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>
    
    0 讨论(0)
  • 2020-12-18 07:32

    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)) {
      ..
    }
    
    0 讨论(0)
  • 2020-12-18 07:35

    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.

    0 讨论(0)
  • 2020-12-18 07:53

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

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

    0 讨论(0)
  • 2020-12-18 07:54

    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'">
    
    0 讨论(0)
提交回复
热议问题