PHP 파일 다운로드
php에서 서버에 있는 파일 다운로드 받는 기능을 구현해 보겠습니다.
<?php
$dir_path = "/home/www/images/"; // 파일이 위치한 폴더 경로
$file_name = "test.png"; // 파일명
$file_path = $dir_path.$file_name;
$file_size = filesize($file_path);
if (file_exists($file_path)) {
header("Content-Type:application/octet-stream");
header("Content-Disposition:attachment;filename={$file_name}");
header("Content-Transfer-Encoding:binary");
header("Content-Length:{$file_size}");
header("Cache-Control:cache,must-revalidate");
header("Pragma:no-cache");
header("Expires:0");
$fp = fopen($file_path, "r");
while(!feof($fp)) {
$buf = fread($fp, $file_size);
$read = strlen($buf);
print($buf);
flush();
}
fclose($fp);
} else {
die("파일이 존재하지 않습니다.");
}
file_exists(string $filename)
- 파일 또는 디렉터리가 있는지 확인합니다. (is_file을 사용해도 괜찮아요)
- $filename = 파일 경로
fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
)
- 다운로드 할 파일을 읽기전용으로 불러옵니다. ($mode="r" 읽기모드)
feof(resource $stream)
- 열려있는 파일을 읽을 때 파일 끝까지 다 읽었는지 확인하기 위해 사용합니다.
파일 포인터가 끝에 있으면 true를 반환합니다.
'PHP' 카테고리의 다른 글
[PHP] json_decode이 안될 때, json_last_error() 확인하기 (0) | 2022.03.10 |
---|---|
[PHP] 카카오 로그인 - 엑세스 토큰 발급 받기 (0) | 2022.03.07 |
[PHP] 암호화 함수 openssl_encrypt 를 사용하여 암복호화 사용하기! (0) | 2022.03.03 |
[PHP] 카카오 REST API를 사용해보자 (0) | 2022.03.03 |
[PHP] CURL GET, POST 사용법 (0) | 2022.03.03 |