기본적으로 사용자는 일부 데이터를 txt 파일로 내보낼 것입니다. 그러면 해당 txt 파일이 자동으로 다운로드됩니다. 다운로드가 정상적으로 작동하며 원하는 데이터가 표시됩니다. 그러나 실제 페이지의 HTML이 끝에 추가됩니다? 위의 코드 후 HTML이있는 경우, 당신은 readfile($filename)
후 exit
에PHP를 통해 txt 파일을 강제로 다운로드하려면 HTML이 포함됩니다.
$fh = fopen($filename, 'w');
fwrite($fh, $data);
fclose($fh);
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: text/plain');
readfile($filename);
실제 페이지는 무엇입니까? 단일 HTTP 응답에서 두 개의 파일 (다운로드 및 HTML 문서)을 제공하려고합니까? 그렇게 할 수는 없지만 HTTP는 그렇게 작동하지 않습니다. – Quentin
고마워요! 그 때 분명히 문제입니다. 다른 페이지가 페이지와 다운로드를 동시에 제공하는 것처럼 "연기"하는 것으로 나타났습니다. –
HTML을 출력하는 다운로드 스크립트가있는 경우이를 분리해야합니다. 다운로드 스크립트는 다운로드 할 데이터를 제외하고는 아무 것도 출력하지 않아야하며, 다운로드가 시작되지 않으면 오류 메시지가 표시됩니다. – GordonM