움직이지 않는 gif도 mp4로 변환되는 문제 수정

FFmpeg 사용 불가 안내 메시지 추가
추후에 활용하기 위한 type, width, height, duration 컬럼 추가
업로드시 이미지, 오디오, 동영상 파일의 확장자가 잘못된 경우 올바른 확장자를 덧붙이는 기능 추가
This commit is contained in:
conory 2019-10-01 22:50:38 +09:00
parent cdbc2d7a82
commit 16e44d44c7
18 changed files with 331 additions and 180 deletions

View file

@ -143,6 +143,38 @@ class Storage
return @self::exists($path) && @is_writable($path);
}
/**
* Get the MIME content type of a file.
*
* This method returns the MIME content type of a file, or false on error.
*
* @param string $filename
* @return array|false
*/
public static function getContentType($filename)
{
$filename = rtrim($filename, '/\\');
if (self::exists($filename) && @is_file($filename) && @is_readable($filename))
{
if (function_exists('mime_content_type'))
{
return @mime_content_type($filename) ?: false;
}
elseif (($image = @getimagesize($filename)) && $image['mime'])
{
return $image['mime'];
}
else
{
return MIME::getTypeByFilename($filename);
}
}
else
{
return false;
}
}
/**
* Get the size of a file.
*
@ -499,6 +531,51 @@ class Storage
return true;
}
/**
* Move uploaded $source to $destination.
*
* This method returns true on success and false on failure.
*
* @param string $source
* @param string $destination
* @param string $type
* @return bool
*/
public static function moveUploadedFile($source, $destination, $type = null)
{
if ($type === 'copy')
{
if (!self::copy($source, $destination))
{
if (!self::copy($source, $destination))
{
return false;
}
}
}
elseif ($type === 'move')
{
if (!self::move($source, $destination))
{
if (!self::move($source, $destination))
{
return false;
}
}
}
else
{
if (!@move_uploaded_file($source, $destination))
{
if (!@move_uploaded_file($source, $destination))
{
return false;
}
}
}
return true;
}
/**
* Delete a file.
*