finfo_open (FILEINFO_MIME_TYPE)을 사용할 때 다른 MIMI 형식을 사용했습니다.MIMI 유형 정의가 변경 되었습니까?
예를 들어, 메모리를 기반으로, 나는 docx가 application/vnd.openxmlformats-officedocument.wordprocessingml.document라고 믿습니다 (이 StackOverflow 게시물 What is a correct mime type for docx, pptx etc? 참조). 또한 응용 프로그램/zip으로 표시하는 것을 상기하지만 mime_content_type()을 사용했을 때 그랬을 수도 있습니다. 또한, 생각 js 파일은 application/x-javascript로 나타났습니다.
다음은 현재 스크립트를 표시하고 있습니다. 나는 최근에 PHP 5.14로 업데이트했고 새로운 표준이 있는지 궁금한 점이 있는지 의심 스럽다. 나는 이것으로 괜찮지 만, 확장을 MIMI 유형과 비교 한 스크립트를 변경해야 할 것이다.
EDIT - PHP 매뉴얼에서 다음을 찾았습니다.
는PHP> = 5.3.11 및> = 5.4.1부터는 마법 데이터베이스 형식이 으로 변경되었습니다. 이로 인해 내부 MIME 데이터베이스가 업그레이드되었습니다. 이 은 특히 외부 마법을 읽는 코드에 영향을줍니다. 이전 형식의 마법 파일에서 을 읽는 것은 작동하지 않습니다. 또한 일부 텍스트 마임 유형 표현이 변경되었습니다. 예를 들어 PHP 의 경우 "PHP 스크립트 텍스트"대신 "PHP 스크립트, ASCII 텍스트"가 반환됩니다. 이 반환됩니다.
- directory
csv - text/plain
doc - application/msword
docx - application/msword
htm - text/html
ini - text/plain
jpg - image/jpeg
js - text/plain
mp3 - application/octet-stream
pdf - application/pdf
php - text/html
pptx - application/vnd.ms-powerpoint
pst - application/octet-stream
so - application/x-sharedlib
txt - text/plain
wmv - video/x-ms-asf
xls - application/msword
xlsx - application/vnd.ms-excel
zip - application/zip
PHP 코드를 스크립트 아래에 기반 당신에게 시스템의 구성에 따라 달라질 것입니다 인쇄
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
$files[pathinfo($filename, PATHINFO_EXTENSION)]=array('filename'=>$filename,'finfo'=>finfo_file($finfo, $filename));
}
ksort($files);
foreach ($files as $fileext=>$file) {
echo ($fileext.' - '.$file['finfo'].'<br />');
}
finfo_close($finfo);
?>
가장 일반적인 구성은 무엇입니까? 업로드 된 파일의 확장자가 파일 유형과 일치하는지 확인하는 더 좋은 방법이 있습니까? – user1032531