基本上试图消除腐败,提前结束从集合JPEG文件。 我想如果文件标志的结束缺席那么这意味着图像被截断,因此,我会认为这是无效的,我的目的。 是检查声音的这种方法吗? 如果是这样的我怎么能在PHP实现这个任何想法?
干杯
基本上试图消除腐败,提前结束从集合JPEG文件。 我想如果文件标志的结束缺席那么这意味着图像被截断,因此,我会认为这是无效的,我的目的。 是检查声音的这种方法吗? 如果是这样的我怎么能在PHP实现这个任何想法?
干杯
试试这个:
$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';
我解决了这个问题,尝试捕获和@
的功能的面前:
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));
}