0

我通过 FTP 向我的网络服务器发送了很多(每秒几个)图像。问题是我向用户显示收到的最后一张图片,但有时最后一张图片没有完全传输。那么如何在向用户显示图像之前检查图像是否已完全传输。

$directory = dir($path);
        while (false !== ($entry = $directory->read())) {

            $filepath = "{$path}/{$entry}";

            // could do also other checks than just checking whether the entry is a file
            $imageFormats = array(IMAGETYPE_JPEG);

            if (is_file($filepath) && filectime($filepath) > $latest_ctime)
            {
                if(in_array(exif_imagetype($filepath), $imageFormats) && $imageResource = imagecreatefromjpeg($filepath))
                {
                    $latest_filename = $entry;
                    $latest_ctime = filectime($filepath);
                }
            }
        }
4

1 回答 1

9

简单的答案是在 GD 中强力打开它,看看是否有错误。

长的(也是更可取的)答案是上传包含您的文件的 CRC32 校验和列表,并在显示它们之前让 PHP 检查校验和是否匹配。

如果你提供了代码,我会提供实现细节,但是......缺乏精确性,缺乏精确的答案。

于 2012-11-18T21:45:35.583 回答