2013-06-30 2 views
0

PHP Version 5.2.17 (Linux 서버)을 사용하여 파일의 MIME 형식을 가져 오려고합니다. 나는 PHP Version 5.2.6-1+lenny16 (리눅스)를 실행하는 다른 서버에서 다음 스크립트를 사용하고, 그것은 잘 작동 :PHP 5.2에서 파일 MIME 형식을 가져 오는 중 문제가 발생했습니다.

if (in_array(mime_content_type($dir . $img), $image_types)) { ... } 

오늘은 내가 첫 번째 서버에서 동일하게 사용하려고하지만 그것은 작동하지 않았다

Fatal error: Call to undefined function mime_content_type() 

그래서 나는 PHP 매뉴얼을 확인하고 mime_content_type가 사용되지 않습니다 기능을 보았다 - 그래서 나는이 시도 :

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
if (in_array(finfo_file($finfo, $dir . $img), $image_types)) { ... } 
finfo_close($finfo); 

하지만를, 놀랍게도 :

Fatal error: Call to undefined function finfo_open() 

그때 확인하고 fifnfo은 PHP> = 5.3.0 지원 것으로 나타났습니다, 그래서이 마지막 오류가 의미가 있습니다.

아마도 첫 번째가 더 이상 사용되지 않는 기능을 허용하지 않도록 설정 한 것 같습니다. 그게 가능한가?

그러나 PHP 버전 5.2.17을 실행하는 서버에서 파일 MIME 유형을 감지 할 방법이 없다는 것을 의미합니까?! 또는 사용할 수있는 또 다른 기능이 있습니까?

감사합니다.

추 신 : 두 서버 중 하나의 관리자가 아닙니다.

+0

@Bojangles 감사합니다. 나는 당신의 해결책이'$ mime = exec ("file -iL $ filename 2/dev/null");'였음을 알았지 만 그것이 어떻게 작동하는지 알지 못한다. 감사! –

답변

-2

mime_content_type(filename)을 사용해보세요 :)

+0

그게 첫 번째 경우에 시도한 것입니다. 파일 이름 인수가 두 문자열을 연결 한 것으로 생성됩니다. 즉, 문제의 원인이 아닙니다.) –

+0

oops. 죄송합니다. 서버에서 활성화 된 mime 모듈입니까? – junerey

+1

그게 문제 야 - 서버 관리자가 아니야 –

관련 문제