2017-12-01 4 views
0

브라우저에서 파일을 보는 대신 파일을 강제로 다운로드하는 헤더가 있지만이 옵션을 제공해야합니다. 스택 오버플로에 대한 몇 가지 게시물 (예 : How to force files to open in browser instead of download (pdf)?)에 대한 답변을 보았지만 여전히 원하는 결과를 얻지 못하고 있습니다. 그래서 뭔가 빠졌는지 확인하고 싶었습니다. 여기브라우저에서 PDF 파일 다운로드 강제 실행

$file = 'file.pdf'; 
    $filePath = 'path/to/file.pdf'; 

    header("Cache-Control: public"); 
    header("Content-Length: 20000"); 
    header("Content-Description: File Transfer"); 
    header("Content-Type:file"); 
    header('Content-Disposition: attachment; filename="$file"'); 
    header("Content-Transfer-Encoding: binary"); 

    readfile($filePath); 

그리고 여기에 시도하고 브라우저

header("Cache-Control: public"); 
    header("Content-Length: 20000"); 
    header("Content-Description: File Transfer"); 
    header("Content-Type:file"); 
    header('Content-Disposition:inline; filename="$file"'); 
    header("Content-Transfer-Encoding: binary"); 

    readfile($filePath); 

에서 파일을 표시하는 헤더이다 다운로드를 강제로 내 헤더 그래서 유일한 변화는 내용 - 처리 헤더입니다 .

그러나 아직 브라우저에 마크 업을 표시하고 있습니다 (이미지 참조).

enter image description here

어떤 아이디어가? 당신이 다운로드를 수행하기 위해 브라우저를 지시 할 때

많은 감사

답변

0

당신은 여전히 ​​컨텐츠 처분에 대한 inline을 사용하고 있습니다. 대신 attachment을 사용해보세요.

더 detais : Content-Disposition

+0

죄송합니다 - 내 실수, 그것은 첨부 파일을 수 shoudl (그리고 내 코드에 - 위의 내용을 수정했다). 어쨌든이 문제는 브라우저에 다운로드가 강제로 표시되지 않습니다. – Newfoundland