В основном пытается удалить поврежденные, преждевременно заканчивающиеся файлы jpeg из коллекции. Я полагал, что если маркер конца файла отсутствует, это означает, что изображение усечено, и поэтому я считаю его недопустимым для моих целей. это метод проверки звука? если да, есть идеи о том, как я могу реализовать это на php?
Ура
3
user177139
22 Сен 2009 в 16:47
2 ответа
Лучший ответ
Попробуй это:
$jpgdata = file_get_contents('image.jpg');
if (substr($jpgdata,-2)!="\xFF\xD9") {
echo 'Bad file';
}
Это приведет к загрузке всего файла JPG в память и может привести к ошибке для больших файлов.
Альтернатива:
$jpgdata = fopen('image.jpg', 'r'); // 'r' is for reading
fseek($jpgdata, -2, SEEK_END); // move to EOF -2
$eofdata = fread($jpgdata, 2);
fclose($jpgdata);
if ($eofdata!="\xFF\xD9") echo 'Bad file';
4
Peter
22 Сен 2009 в 17:05
Я решил эту проблему с помощью try catch и @
перед функцией:
try
{
if (!@imagecreatefromjpeg($photoPath)
throw new Exception('The image is corrupted!');
}
catch(Exception $e)
{
$error = $e->getMessage();
Yii::app()->user->setFlash('addphoto', Yii::t('app', $error));
}
0
Tobia Zambon
11 Ноя 2013 в 16:42
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.
<space><linefeed>
. Так что эта проверка может иметь ложноотрицательные результаты.