>  기사  >  백엔드 개발  >  PHP에서 파일의 콘텐츠 유형을 결정하는 방법은 무엇입니까?

PHP에서 파일의 콘텐츠 유형을 결정하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-14 12:19:02586검색

How to Determine the Content Type of a File in PHP?

PHP에서 파일 콘텐츠 유형을 결정하는 방법

첨부 파일이 포함된 이메일을 보낼 때 파일의 올바른 Content-Type 헤더를 설정하는 것이 중요합니다. 성공적인 배송과 올바른 디스플레이를 보장하기 위해 첨부 파일을 첨부합니다. PHP에서는 file_get_contents() 함수를 사용하여 첨부 파일의 콘텐츠를 검색할 수 있지만 콘텐츠 유형을 결정하려면 추가 단계가 필요합니다.

getFileMimeType() 함수

이 작업을 단순화하려면 다음 getFileMimeType() 사용을 고려하세요. 함수:

function getFileMimeType($file) {
    if (function_exists('finfo_file')) {
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $type = finfo_file($finfo, $file);
        finfo_close($finfo);
    } else {
        require_once 'upgradephp/ext/mime.php';
        $type = mime_content_type($file);
    }

    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        $secondOpinion = exec('file -b --mime-type ' . escapeshellarg($file), $foo, $returnCode);
        if ($returnCode === 0 && $secondOpinion) {
            $type = $secondOpinion;
        }
    }

    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        require_once 'upgradephp/ext/mime.php';
        $exifImageType = exif_imagetype($file);
        if ($exifImageType !== false) {
            $type = image_type_to_mime_type($exifImageType);
        }
    }

    return $type;
}

작동 방식

이 함수는 콘텐츠 유형을 결정하기 위해 여러 가지 방법을 시도합니다.

  1. finfo_file (): 사용 가능한 경우 PHP 핀포를 사용합니다. function.
  2. mime_content_type(): finfo를 사용할 수 없는 경우 mime_content_type() 대안으로 대체됩니다.
  3. file 명령: 위의 방법이 실패하면 MIME 유형에 대해 OS의 파일 명령을 실행하려고 시도합니다. 식별.
  4. exif_imagetype(): 최후의 수단으로 EXIF_imagetype()을 사용하여 이미지의 MIME 유형을 결정합니다.

이러한 방법을 사용하면 이 함수는 다양한 파일 형식의 콘텐츠 형식을 검색하는 강력한 방법을 제공합니다.

위 내용은 PHP에서 파일의 콘텐츠 유형을 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.