>백엔드 개발 >PHP 튜토리얼 >PHP에서 파일 콘텐츠 유형을 안정적으로 결정하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-11-15 05:26:02617검색

How to Reliably Determine File Content-Type in PHP?

PHP에서 파일 내용 유형 결정

PHP에서는 파일을 보낼 때 파일의 내용 유형을 결정하는 것이 필수적입니다. 이메일 첨부. 이렇게 하면 헤더에 올바른 MIME 유형이 지정되어 수신 소프트웨어가 파일을 적절하게 처리할 수 있습니다.

Content-Type 얻기

권장되는 접근 방식은 다음과 같습니다. 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;
}

이 함수는 다음을 포함한 다양한 방법을 사용하여 콘텐츠 유형을 결정하려고 시도합니다.

  • PHP의 finfo 함수(사용 가능한 경우)
    *Upgrade.php 라이브러리의 mime_content_type()
  • OS의 파일 명령(*NIX 시스템용)
  • 이미지 파일용 exif_imagetype()

활용 다양한 방법을 통해 이 기능은 운영 체제나 PHP 환경에 관계없이 올바른 콘텐츠 유형을 얻을 수 있는 안정적인 솔루션을 제공합니다.

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

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