2011-11-09 1 views
1

나는 궁극적으로 파일을 직접 다운로드하기보다는 다운로드하라는 의미로 브라우저를 강제 실행하는 스크립트를 만들고 싶습니다. DB 엔트리를 기반으로하고 싶습니다. 그래서 약간의 난독 화가 있습니다. 더. 내 문제는 내가 마임 유형이나 2를 찾을 수 밖에 없지만 나는 공평한 주식 가치를 원한다. doc에서 pdf, avi로 mp3에. 내 스크립트는 파일의 확장자를 기반으로 실행 한 다음 적절한 헤더를 출력하기 만하면 어떤 파일 유형으로 출력할지 알 필요가 있습니다. 기본적으로 브라우저에서 스트리밍하거나 열 수있는 파일 유형 목록이 있습니까?MIME 유형/헤더의 전체 목록이 있습니까?

+0

.NET 프레임 워크 대안이 있습니다. http://stackoverflow.com/questions/3937958/how-can-i-query-iis-for-mime-type-mappings (여전히 PHP + Apache 솔루션을 찾고 있습니다) – Raptor

+0

안타깝게도 .NET을 통한 솔루션에 대한 제안은 PHP로 개발 된 앱에 감사드립니다. 그러나 비슷한 전화 번호를 사용하는 .NET 사이트에서 작업 할 때는이 점을 염두에 두지 않으면 안됩니다. – chris

답변

4

파일 확장자가 파일 형식을 결정하는 가장 신뢰할 수있는 방법은 아닙니다. 일부 MIME 추측에 관심이있을 수 있습니다. 당신이 응용 프로그램 리눅스에서 호스팅되는 경우 -i 옵션을 file 명령 줄 도구 혜택을 누릴 수 있습니다 :

// Use escapeshellarg() to inject arbitrary file paths 
$content_type = `file -i /path/to/file`; 

그렇지 않으면, PHP는 PECL 확장 Fileinfo라고 있습니다.

파일 확장자를 사용하려면 media types are approved by the IANA을 사용하십시오.

업데이트 : Fileinfo는 PHP/5.3.0부터 기본 확장이므로 타사 응용 프로그램을 설치할 필요가 없습니다. 사용 예 :

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mime_type = finfo_file($finfo, '/path/to/file'); 
finfo_close($finfo); 
+0

나는 이것을 곧 테스트 할 수 있음을 알고 있습니다. 다행히도 (나는 godaddy가 제약 조건을 가지고 있음을 안다.) 그러나 나는 mime_type이 mime_type을 응용 프로그램의 동등한/blah 일까? – chris

+1

@chris - 정확합니다. –

+0

매우 고맙습니다. 고맙습니다. – chris

1

의견이 너무 깁니다. 그래서 나는 그것을 답으로 썼다.

테스트 MIME 유형 지원

방화범은 아파치가 다른 이미지와 영화 형식에 대해 반환 무엇 헤더 확인하는 데 사용할 수 있습니다

. 이렇게하려면 원하는 파일을 HTML로로드하면됩니다. Firebug를 열고 "Net"-> "Headers"-> "Response Headers"로 이동하십시오. 콘텐츠 유형이 표시되어야합니다. 아파치가 이미지/영화를 인식하지 못하면 "text/plain"으로 반환됩니다. 아파치가 리소스를 인식하면 올바른 MIME 형식을 참조하십시오. "video/webm". 요청 상태 옆에 "304 Not Modified"가 표시되면 리소스가 캐시에서 가져온 이고 HTTP 헤더가 Apache 구성에 대한 변경 사항을 반영하지 않을 수 있습니다. " + F5"를 사용하여 Firefox가 모든 캐시 된 항목을 다시 가져 오도록 할 수 있습니다.

위의 힌트에서 서버 응답을 구문 분석하여 웹 서버의 콘텐츠 유형 응답을 테스트 할 수 있습니다. text/plain이 반환되면 MIME이 지원되지 않음을 의미합니다.

관련 문제