PHP의 콘텐츠 유형 식별 이해
이메일에 파일을 첨부할 때 콘텐츠 유형을 정확하게 결정하는 것이 중요합니다. PHP는 이를 달성하기 위한 다양한 방법을 제공합니다.
콘텐츠 유형 결정 기능
이러한 요구를 해결하기 위해 제공된 솔루션은 다음 기능을 제공합니다.
function getFileMimeType($file) { // Attempt to use PHP finfo functions if (function_exists('finfo_file')) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $type = finfo_file($finfo, $file); finfo_close($finfo); } // Fallback to mime_content_type alternative else { require_once 'upgradephp/ext/mime.php'; $type = mime_content_type($file); } // Further fallbacks if previous attempts failed if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) { // Use file command if available $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'))) { // Attempt to use exif_imagetype for images require_once 'upgradephp/ext/mime.php'; $exifImageType = exif_imagetype($file); if ($exifImageType !== false) { $type = image_type_to_mime_type($exifImageType); } } return $type; }
기능 설명
이 기능은 다음을 시도합니다. PHP의 finfo 함수를 활용하여 MIME 유형을 식별합니다. 실패하면 mime_content_type 함수로 대체됩니다. 이들 중 어느 것도 작동하지 않는 경우 *NIX 시스템에서 'file' 명령을 실행하려고 시도합니다. 마지막으로, EXIF_imagetype을 사용하여 이미지의 MIME 유형을 결정합니다.
서버마다 MIME 유형 기능에 대한 지원이 다양하며 Upgrade.php mime_content_type 대체가 항상 신뢰할 수 있는 것은 아니라는 점은 주목할 가치가 있습니다. 그러나 EXIF_imagetype 함수는 서버 전체에서 일관되게 수행되는 경향이 있습니다. 이미지 파일에만 관심이 있는 경우 MIME 유형 결정을 위해 이 기능만 사용하는 것이 좋습니다.
위 내용은 PHP에서 파일의 `Content-Type`을 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!