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

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

DDD
풀어 주다: 2024-12-04 14:54:10
원래의
256명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿