PHP
[PHP] 파일 다운로드
dev-mint
2022. 3. 23. 14:41
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를 반환합니다.