간단한 질문입니다. 아마도 백만 번 질문을 받았지만 검색을 해본 결과이 작업을 수행하는 데 더 이상 익숙하지 않았습니다.PHP에서 제공하는 브라우저에서 파일 열기
브라우저를 통해 사용자에게 파일을 제공하는 UserFrosting 프레임 워크 내에 PHP 스크립트가 있습니다. 'Open'Institand and Download를 선택하면 해당 파일을 브라우저에서 열어 보겠습니다.
문제는 올바르게 열리는 것은 텍스트 파일뿐입니다. 다른 것 (지금까지 테스트 된 PDF 및 JPG)은 PDF 또는 이미지로 해석되는 대신 ASCII/깨진 코드의 페이지로 열리고 있습니다.
header('Content-Type: '. $mime);
header('Content-Length: ' . filesize($diskname));
header('Content-Disposition: inline; filename=' . $savename);
return readfile($diskname);
$mime
함수를 통해 설정 파일의 MIME 타입, 그래서 지금까지 볼려고 파일에 대한 application/pdf
또는 image/jpeg
수 :
여기 내가 사용하는 코드입니다.
파일이 제대로 열리지 않는 이유는 누구입니까?
UPDATE 내가 대신 application/jpeg
또는 그것이 내가 사용하고 코드에 따라 설정 한 것을 application/pdf
의 text/html;charset=UTF-8
의 콘텐츠 형식을지고있어, 응답 헤더를 확인 가졌어요. 이것이 UserFrosting 문제인지 궁금합니다.
"응용 프로그램/pdf 또는 이미지/jpeg 일 수 있습니다."- 서버에서 실제로 보내고있는 내용인지 확인 했습니까? – Quentin
잘 $ mime은 파일에 따라 application/pdf 또는 image/jpeg 중 하나로 설정되고 있습니다. 내 브라우저의 debug-fu는별로 좋지 않습니다. Firefox를 사용하면 파일이 새 탭에서 열리고 오류 메시지가 나타납니다. "HTML 문서의 문자 인코딩이 선언되지 않았습니다."Content-Type이 어떻게 든 손실되었다고 가정하고 있습니까? – nockieboy
개발자 도구를 엽니 다. 네트워크 탭을 살펴보세요. 모든 요청과 응답이 표시되고 헤더와 원시 콘텐츠를 검토 할 수 있습니다. – Quentin