2014-10-02 3 views
0

특정 페이지를 방문 할 때 방문자가 텍스트 파일을 다운로드하게하려고합니다. 이 페이지는 다음과 같습니다.PHP force 다운로드 파일이 작동하지 않습니다.

<?php 
$file_url = 'text.txt'; 
header("Content-Disposition: attachment; filename=\"" . basename($file_url) . "\""); 
header("Content-Type: application/force-download"); 
header("Content-Length: " . filesize($file_url)); 
header("Connection: close"); 
readfile($file_url) 
?> 

그러나 다운로드를 요청하는 대신 파일이 브라우저에 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+1

header() 호출이 실제로 적용되는지 확인 하시겠습니까? 당신은 '헤더가 이미 전송되었습니다'라는 문제로 고통을 겪을 수 있으며 다운로드 한 내용 중 아무 것도 효과를 나타내지 못합니다. –

답변

1

일부 머리글 속성이 누락되었을 수 있습니다.

<?php 
    $file_url = 'text.txt'; 

    header('Content-Type: text/plain'); 
    header('Content-Disposition: attachment; filename='.basename($file_url)); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file_url)); 
    readfile($file_url); 
    exit; 
?> 
+0

올바른 내용 유형은'text/plain'입니다. – Quentin

+0

@Quentin - 네, 맞습니다. 좋은 캐치. – Baraa

관련 문제