보기를 클릭하면PHP에서 일반 Mime 유형을 올바르게 구현하는 방법은 무엇입니까?
브라우저에서 해당 파일을 열어 보았습니다.
readfile('test.jpg');
Firefox에서 오류가 발생한 것 같습니다.
보기를 클릭하면PHP에서 일반 Mime 유형을 올바르게 구현하는 방법은 무엇입니까?
브라우저에서 해당 파일을 열어 보았습니다.
readfile('test.jpg');
Firefox에서 오류가 발생한 것 같습니다.
해당 파일에 대한 링크 만 제공하면 브라우저가 나머지 작업을 수행합니다. 이 파일이 서버에 저장되어 있다면 외부 세계에 노출되는 스크립트를 찾고있을 것입니다. 이 스크립트는 올바른 MIME 형식을 설정해야하며 readfile
이 트릭을 수행해야합니다. 당신이 파일의 MIME 타입을 얻고 싶은 경우에
<?php
header('Content-type: image/gif');
readfile('/path/to.your/file.gif');
exit();
파일이 .pdf이면 어떻게됩니까? 일반적인 해결책이 있습니까? – user198729
검색 MIME 유형. – deerchao
, 당신은 PHP에서, 적어도 두 가지 옵션이 있습니다
:첫 번째는 (지금은 사용되지 않음) 기능 mime_content_type
을 사용하는 것입니다
text/plain
또는application/octet-stream
과 같은 콘텐츠 형식을 MIME 형식으로 반환합니다.
번째 새로운 Fileinfo 확장 사용하는 것 (PHP < 5.3위한 PECL 확장을 가능으로하고, PHP> = 5.3 통합);
파일 이름 인수의 내용의 텍스트 설명을 돌려 에러가 발생하면 FALSE 다음
finfo_file
기능은 당신이 필요합니다 하나가 될 것으로 보인다.
그리고 주어진 예 (인용) :
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
출력의이 종류를 제공합니다 :
text/html
image/gif
application/vnd.ms-excel
당신이 사용해야합니다 무엇을 어떤 대응의 종류 Content-type
응용 프로그램이 보내야 할 HTTP 헤더;
많은 동시 사용자가있는 경우 MIME 마술 패턴 테스트가 "가장 저렴한"함수가 아니기 때문에 어떻게 든 결과를 캐싱하는 것이 좋습니다. – VolkerK
finfo_open 마법 데이터베이스 php를로드하지 못했습니다. – user198729
글쎄, 어떤 종류가 있습니다. 당신이 올바른 장소에 놓아야하는 "마법 데이터베이스"(몇 번 시도했지만 설정하기가 쉽지는 않지만 ** 어려운 것도 있음) ;; http://www.php.net/manual/en/function.finfo-open.php에 몇 가지 정보가 있습니다.이 정보는 조금 더 먼 길로 인도 할 수 있습니다. –
"실패합니다. "? 예를 들어, 오류 메시지가 나타 납니까? 파일이 현재 디렉토리에 있습니까? –
이미지 대신 지저분한 문자가 많이 나옵니다. – user198729