반응형
파일 이미지 유형을 판단합니다
$type = $_FILES['image']['tmp_name'];//파일 이름
//$type = $this->getImagetype( $type );
$filetype = ['jpg', 'jpeg', 'gif', 'bmp', 'png'];
if (! in_array($type, $filetype))
{
return "이미지 타입이 아닙니다";
}
위와 같이 사용자가 파일 접미사를 png jpeg 등으로 수정하는 것이 만족스럽지 않다면, 자료를 찾아보는 방법은 파일을 판단하는 이진수 흐름 정보를 사용하는 것이다. 만약 당신이 바로 이런 문제에 부딪힌다면 시도해 보는 것이 좋다
//*그림 업로드 형식이 그림인지 여부를 결정합니다. return 파일 접미사를 반환합니다
public function getImagetype($filename)
{
$file = fopen($filename, 'rb');
$bin = fread($file, 2); //2바이트 읽기 전용
fclose($file);
$strInfo = @unpack('C2chars', $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
// dd($typeCode);
$fileType = '';
switch ($typeCode) {
case 255216:
$fileType = 'jpg';
break;
case 7173:
$fileType = 'gif';
break;
case 6677:
$fileType = 'bmp';
break;
case 13780:
$fileType = 'png';
break;
default:
$fileType = '사진 형식만 업로드 가능';
}
// if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
// if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';
return $fileType;
}
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHPStorm PSR-4 네임스페이스 접두사 추가 (0) | 2022.08.02 |
---|---|
PHP5.6 CURL을 통해 사진 업로드 @ 부호가 올바르지 않은 호환성 문제 (0) | 2022.08.02 |
php로 md5 복호화를 위한 소스 (0) | 2022.08.02 |
php 두 자릿수 그룹을 키 값으로 정렬합니다 (0) | 2022.08.02 |
Laravel 사용자 정의 Json 데이터 형식 참조로 쉽게 돌아가기 (0) | 2022.08.02 |