2012-06-29 3 views
0

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); 
?> 

답변

0

MIME 형식을

MIMI 목록을 감사드립니다. 시스템이 MSWord에서 .docx 파일을 열도록 구성되어 있다면, MIME 형식으로 application/msword이됩니다. 마찬가지로 동일한 확장명 .docx가 LibreOffice에서 열리도록 구성되어 있으면 mime 형식으로 application/vnd.openxmlformats-officedocument.wordprocessingml.document이됩니다.

서버 구성에 대한 이러한 종속성으로 인해 mime 유형은 그리 신뢰할 수 없습니다.

+0

가장 일반적인 구성은 무엇입니까? 업로드 된 파일의 확장자가 파일 유형과 일치하는지 확인하는 더 좋은 방법이 있습니까? – user1032531

관련 문제