>백엔드 개발 >PHP 튜토리얼 >`header()`를 사용하여 PHP로 파일을 강제로 다운로드하는 방법은 무엇입니까?

`header()`를 사용하여 PHP로 파일을 강제로 다운로드하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-04 14:54:10286검색

How to Force File Downloads with PHP Using `header()`?

header()를 사용하여 PHP로 강제 파일 다운로드

1. 문제:

사용자가 서버에서 파일을 다운로드할 수 있도록 하려고 하는데 파일에서 "다른 이름으로 저장" 대화 상자가 표시되지 않습니다.

2. 원인:

헤더에 콘텐츠 유형 선언이 잘못되었습니다.

3. 해결 방법:

파일 다운로드를 위해 콘텐츠 유형 헤더가 application/octet-stream으로 설정되어 있는지 확인하세요.

header('Content-Type: application/octet-stream');

4. 추가 팁:

  • addcslashes 기능을 사용하여 헤더를 손상시킬 수 있는 문자로부터 파일 이름을 보호하세요.
  • Content-Disposition을 사용하여 다운로드한 파일에 대한 특정 파일 이름을 설정하세요. 부착; 파일 이름=<파일 이름> 헤더.
  • Content-Length 헤더를 사용하여 콘텐츠 길이를 지정하세요.
  • 캐싱을 방지하고 파일이 브라우저에 표시되지 않고 저장되도록 헤더를 추가하세요.

5. 예제 코드:

$quoted = sprintf('"%s"', addcslashes(basename($file), '"\'));
$size = filesize($file);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $quoted);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
readfile($file);

위 내용은 `header()`를 사용하여 PHP로 파일을 강제로 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.