PHP 는 파일 mime 형식 을 가 져 오 는 다양한 방법 으로 해석 합 니 다.

6369 단어 PHP획득mime유형
이 실례 는 php 에서 파일 mime 형식 을 가 져 오 는 방법 을 설명 한다.모두 에 게 참고 하도록 공유 하 다.구체 적 으로 다음 과 같다.
1.mime 사용content_type 방법string mime_content_type ( string $filename )
Returns the MIME content type for a file as determined by using information from the magic.mime file.

<?php 
$mime_type = mime_content_type('1.jpg'); 
echo $mime_type; // image/jpeg 
?>
그러나 이 방법 은 php 5.3 이상 에서 폐기 되 었 으 며,공식 적 으로 fileinfo 방법 으로 대체 할 것 을 건의 합 니 다.
2.Fileinfo 방법 사용(공식 추천)
fileinfo 를 사용 하려 면 php 를 설치 해 야 합 니 다.fileinfo 확장.
설치 되 어 있 으 면 extensiondir 디 렉 터 리 에서 php 찾기fileinfo.dll(windows),fileinfo.so(linux)
php.ini 를 열 고 extension=phpfileinfo.dll 앞의";"제거 하고 apache 를 다시 시작 합 니 다.

<?php 
$fi = new finfo(FILEINFO_MIME_TYPE); 
$mime_type = $fi->file('1.jpg'); 
echo $mime_type; // image/jpeg 
?>
3.image 사용type_to_mime_type 방법(이미지 형식 만 처리 가능)
exif 사용imagetype 방법 은 php 를 설치 해 야 합 니 다.exif 확장 및 php 설치 필요mbstring 확장
설치 되 어 있 으 면 extensiondir 디 렉 터 리 에서 php 찾기exif.dll(windows),exif.so(linux)
php.ini 를 열 고 extension=phpmbstring.dll, extension=php_exif.dll 앞","제거 하고 apache 를 다시 시작 합 니 다.

<?php 
$image = exif_imagetype('1.jpg'); 
$mime_type = image_type_to_mime_type($image); 
echo $mime_type; // image/jpeg 
?>
Tips:파일 이름 의 접 두 사 를 사용 하면 파일 접 두 사 를 수정 할 수 있 기 때문에 파일 접 두 사 를 사용 하여 판단 하 는 것 이 정확 하지 않 습 니 다.
php 파일 가 져 오기 mime 형식 Fileinfo 등 방법
며칠 전 wordpress xmlrpc api 를 사용 하여 원 격 으로 글 을 올 렸 습 니 다.로 컬 서버 의 글 창고 에 발표 할 wordpress 글 이 그림 파일 을 포함 하고 있 을 때 WordPress 에서 파일 을 업로드 하 는 API metaWeblog.newMediaObject 를 사용 합 니 다.이 api 는 파일 의 mime 형식 을 제공 해 야 합 니 다.php 는 어떻게 파일(그림)의 mime 형식 을 가 져 옵 니까?최초 원 격 블 로그 사용 php mimecontent_type()함수,개발 용 ubuntu server lamp 의 기본 설정 테스트 를 사용 하여 완전히 지원 합 니 다.올 바른 파일 mime type 을 되 돌려 줍 니 다.그러나 이 API 항목 을 Centos 5.2(커 널 2.6)LAMP 환경 에 이식 할 때 다음 과 같은 오류 알림 이 발생 했 습 니 다.Fatal error: Call to undefined function: mime_content_type()마지막 으로 최신 php 매 뉴 얼 을 봤 는데 php mimecontent_type()함수 가 폐기 되 었 습 니 다.물론 공식 적 으로 사용 하 는 것 을 추천 하지 않 으 며 적당 한 phop 설정 을 거 쳐 야 사용 할 수 있 습 니 다.따라서 그림 이나 다른 파일 의 MIME 형식 을 가 져 오 려 면 Fatal error:Call to undefined function:mimecontent_type()오 류 는 다음 과 같은 몇 가지 해결 방안 이 있 습 니 다.
mime_content_type()함수 판단 으로 mime 형식 가 져 오기
phop 5.3.0 버 려 진 mimecontent_type()함수 가 여전히 특별한 종 류 를 가지 고 있 습 니 다.phop 설정 에 magic 을 사용 할 수 있 습 니 다.mime 확장.예 를 들 어 Centos 에서 phpinfo()를 사용 하여 php apache 설정 을 보고 mime-magic 를 찾 습 니 다.'--without-mime-magic'이 표시 되면 php 를'with-mime-magic'옵션 으로 변환 합 니 다.mime_content_type()함 수 는 아파 치 httpd 의 magic 파일(mimemagic.magicfile)파일 의 MIME 형식 을 검사 하기 위해 서 는'Cwith-mime-magic=/usr/share/file/magic.mime'와 같은 magic 파일 의 주 소 를 설정 해 야 합 니 다.Windows 환경 에서 php.ini 에 추가 해 야 합 니 다:mime_magic.magicfile = "$PHP_INSTALL_DIRmagic.mime"그 중$PHPINSTALL_DIR 은 당신 의 php 설치 디 렉 터 리 입 니 다.어떤 LAMP 환경 에서 이 mimemagic 파일 이 반드시 존재 하거나 읽 을 수 있 는 것 이 아니 라 따로 다운로드 해 야 합 니 다.또한 일부 가상 호스트 는 보안 을 위해 with-mime-magic 이 있어 도 정확 한 mime 형식 으로 돌아 가 는 것 이 아니 라 빈 문자열 로 돌아 갈 때 도 있 습 니 다.그래서 mimecontent_type()함수 가 폐기 되 었 습 니 다.이 방법 으로 파일 MIME 형식 을 가 져 오 는 것 을 추천 하지 않 습 니 다.
php Fileinfo 파일 MIME 형식 가 져 오기(finfoopen)
PHP 공식 추천 mimecontent_type()의 대체 함 수 는 Fileinfo 함수 입 니 다.PHP 5.3.0+는 기본적으로 Fileinfo 함수(fileinfo support-enabled)를 지원 하 며,어떠한 설정 없 이 finfo 를 사용 할 수 있 습 니 다.open()은 파일 MIME 형식 을 가 져 오 는 것 을 판단 합 니 다.Centos 기본 으로 설 치 된 LAMP 환경 php 버 전 은 PHP 5.2.6 이 며 5.3.0 버 전 보다 낮 으 면 유사 한 오류 알림 이 발생 할 수 있 습 니 다:PHP Fatal error:Call to undefined function finfoopen() in…。이전 phop 버 전 때문에 magic 를 불 러 와 야 합 니 다.open 클래스,fileinfo 함 수 는 PECL 확장 에 속 합 니 다.fileinfo PECL 확장 을 사용 해 야 MIME 형식 을 감지 할 수 있 습 니 다.그래서 fileinfo 를 사용 하여 파일 을 가 져 오 는 MIME 형식 이 두 가지 가 있 습 니 다.
php 버 전 을 5.3.0 이상으로 업그레이드 합 니 다.php 공식 도 이 fileinfo pecl 확장 패 키 지 를 더 이상 유지 하고 업데이트 하지 않 기 때문에 업그레이드 하 는 것 이 가장 좋 은 방법 입 니 다.
fileinfo pecl 확장 을 설치 합 니 다.Centos Liux 는 fileinfo 를 어떻게 설치 합 니까?Centos 아래 에 fileinfo 명령(rpm):yum install phop-pecl-Fileinfo 를 설치 합 니 다.원본 코드 로 컴 파일 하기:
cd /usr/src/down && wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz
tar zxvf Fileinfo-1.0.4.tgz
cd /usr/src/down/Fileinfo-1.0.4 && phpize && ./configure && make && make install
또한 인터넷 에 많이 퍼 지 는 방법 도 사용 할 수 있 습 니 다.Linux 는 phpize 를 통 해 pecl 명령 을 사용 하여 fileinfo 를 설치 할 수 있 습 니 다.
  • phpize 명령 이 없 으 면 먼저 설치 해 야 합 니 다.\#phpize 검 측 은"No command'phpize'found"를 알 리 면 먼저 phpize 를 설치 해 야 합 니 다.
  • php-devel(php 5-dev)을 설치 한 rpm 를 다운로드 하고 phpize 를 설치 합 니 다.
  • service httpd restart 또는 reboot;
  • pecl install fileinfo 에 fileinfo 확장 을 설치 하 라 고 명령 합 니 다.
  • 설치 완료,/usr/lib/php/module 디 렉 터 리 에 fileinfo.so 파일 이 추가 되 었 습 니 다./usr/share/file 디 렉 터 리 에 magic.ime 와 magic 두 문서 가 추가 되 었 습 니 다
  • php.ini 설정 수정:extension="fileinfo.so"
  • service httpd restart
  • Windows 서버 에 fileinfo 를 설치 하 는 것 이 비슷 합 니 다.php.ini:extension=phpfileinfo.dll
  • image_type_to_mime_type()그림 가 져 오기 MIME 형식
    MIME 형식의 파일 이 그림 파일 만 있다 고 판단 하려 면 먼저 exif 를 사용 할 수 있 습 니 다.imagetype()함수 로 이미지 형식 상수 가 져 오고 imagetype_to_mime_type()함 수 는 그림 형식의 상수 를 그림 파일 의 MIME 형식 으로 변환 합 니 다.같은 php.ini 에서 php 열기 설정mbstring.dll(Windows 필요)와 extension=phpexif.dll。phpinfo()“Cenable-exif”。우선 exifimagetype 은 IMAGETYPE 와 같은 이미지 형식 상수(Imagetype Constants)를 되 돌려 줍 니 다.GIF、IMAGETYPE_JPEG、IMAGETYPE_PNG 등.
    
    <?php 
    $image = exif_imagetype("D:farleeinfo.jpg");  //              IMAGETYPE_GIF// 
    $image = exif_imagetype("http://farlee.info/wp-content/images/rss_feedsky.gif"); 
    $mime = image_type_to_mime_type($image); 
    echo $mime; //   image/jpeg 
    ?>
    php 파일 업로드 MIME 형식 가 져 오기
    php 로 파일 을 업로드 하고 파일 을 업로드 하 는 MIME 형식 을 감지 하면 전역 변 수 를 사용 할 수 있 습 니 다$FILES['uploadfile']['type']클 라 이언 트 의 브 라 우 저 에서 파일 MIME 형식 을 가 져 옵 니 다.
    Centos 시스템 이나 다른 환경 에서 파일 MIME 형식 을 가 져 오기 가 불편 하 다 면 마지막 으로 실행 가능 한 방법 은 파일 이름 접 두 사 를 읽 는 것 입 니 다.접두사 이름 에 따라 파일 에 대응 하 는 MIME 형식 에 따라 phop 매 뉴 얼 에 있 는 이 댓 글 을 참고 할 수 있 습 니 다.물론 이런 방법 으로 검출 된 MIME 파일 형식 이 꼭 정확 한 것 은 아니다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기