반응형
첨부된 파일을 다운로드 받을때 파일이 저장된 경로를 보여주지 않고 특정한 파일을 통해서 다운로드 받게 하는 경우가 있다. 링크로 본다면 이렇게 될것이다.
/download.php?id=1
이런식으로 개발자만 알 수 있는 아이디값을 받아서 디비에서 조회하거나 해서 filename과 filepath를 알아내어 사용자에게 보여주면 된다. 이렇게하면 해당 파일이 어디에 저장돼 있는지 사용자들은 확인할 수 없게 된다.
<img src="/download.php?id=1">
이렇게 이미지 태그에도 사용할 수 있다. 보안을 위해서 이렇게 쓰는걸 추천하는 경우도 있다.
download.php
<?php
header("content-type: file/unknown");
header("content-length: ".filesize($_SERVER["DOCUMENT_ROOT"].$filepath));
header("content-disposition: attachment; filename=".$filename);
header("content-description: php generated data");
header("pragma: no-cache");
header("expires: 0");
if($fp = fopen($_SERVER["DOCUMENT_ROOT"].$filepath, 'rb')){
while(!feof($fp)) {
print(fread($fp,1024));
flush();
}
fclose($fp);
} else {
print('파일을 찾을 수 없습니다.');
}
?>
반응형
'PHP' 카테고리의 다른 글
PHP unix timestamp 변환 사이트 (0) | 2023.07.04 |
---|---|
[PHP]첨부파일 속성 알아내기 (0) | 2023.06.26 |
우분투에 마젠토 설치 magento Ubuntu (0) | 2021.11.10 |
PHP 글쓰기 시 넘어오는 변수 한꺼번에 받기 (0) | 2021.06.03 |
AWS에 라라벨 설치하고 포트변경 어디서나 접속가능하도록 실행 feat composer (0) | 2021.04.22 |