0

FTP 経由で Web サーバーに大量の (毎秒数個の) 画像を送信しています。問題は、最後に受信した画像をユーザーに表示していることですが、最後の画像が完全に転送されていないことがあります。ユーザーに表示する前に、画像が完全に転送されたかどうかを確認するにはどうすればよいですか。

$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 に答える