2015. 4. 1. 13:07

금일 작업중 Fatal error: Call to undefined function mime_content_type() in ~ 라는 오류가 발생하였습니다.

현재 작업 환경은 윈도우, XAMPP를 사용하고 있는데요.

파일 첨부와 관련한 작업을 하던중 파일의 정보를 확인하려던 차에 상기 오류가 발생한 것입니다

 

위 오류의 해결방법은 의외로 간단합니다.

php.ini파일의 extension=~ 이라는 부분을 수정/추가하면 됩니다.

그러나 동작하는 플랫폼에 따라 조금 다릅니다.

 

1. window

extension=php_fileinfo.dll 을 추가합니다.

참고로 제가 사용하고 있는 XAMPP에서는 저부분이 주석처리되어 있어서

주석을 해제만 하였습니다.

 

2. Linux등

extension=fileinfo.so 를 추가합니다.

 

php.ini을 수정하였기 때문에 물론 Apache를 재실행하여야 합니다.

 

 

그리고  mime_content_type는 deprecated 되었습니다. ㅡㅡ;

 

 

 

함수의 상세 설명페이지 의 일부분인데요 deprecated되었다고 나오며

Fileinfo function들을 이용하라고 합니다.

 

 

 

물론 fileinfo function들도 위에서 언급했던  php_fileinfo.dll 이나 fileinfo.so가 php.ini에 추가되어 있어야 합니다.

 

fileinfo 관련 함수를 사용한 예입니다.

(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)

 

//파일을 저장
$file_name = $_FILES['strFile']['name'];	
if(!move_uploaded_file($_FILES['strFile']['tmp_name'], "./data/files/".$file_name)){
	echo"파일을 복사하는데 실패 했습니다.";
	exit;
}
		
$finfo = finfo_open(FILEINFO_MIME_TYPE);
	
if (!$finfo) {
   echo "fileinfo database failed";
   exit;
}

$filename = "./data/files/".$file_name;
echo finfo_file($finfo, $filename);

finfo_close($finfo);

 

Posted by 작은0악마