我通过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);
}
}
}
答案 0 :(得分:9)
简单的答案是在GD中强行打开它,看看你是否收到错误。
长(最好)的答案是上传CRC32校验和列表和文件,并在显示校验和之前检查校验和是否匹配。
如果您提供了代码,我已经提供了实现细节,但是......缺乏准确性,缺乏准确的答案。