첨부파일을 누르면 파일이 저장된다

파일 다운로드 기능이 제일제일 어려웠다
흑흑
[ download.php ]
<?php
include 'lib.php';
$file_id = $_GET['file'];
$sql = "SELECT * FROM file_upload WHERE file_id = '$file_id'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$file_name = $row['file_name'];
$file_save = $row['file_save'];
$file_path = "./uploads/".$file_save;
header("Content-Type:application/octet-stream");
header("Content-Length:".filesize($file_path));
header("Content-Disposition:attachment;filename=$file_name");
readfile($file_path);
exit;
?>
Content-type : application/octet-stream
파일의 콘텐츠유형을 알 수 없을 때 파일을 바이너리 형식(0과 1의 구조로 저장)으로 처리하도록 하는 것
이 타입을 받은 브라우저는 파일을 렌더링하지 않고 강제로 다운로드하게 한다
사용자가 업로드한 파일이 HTML, JS같은 파일이면 브라우저가 렌더링하면서 스크립트가 실행될 수 있기 때문에
보안목적으로 넣는거라고 생각하면 됨
Content-Length : filesize
전송될 파일의 총 바이트 크기를 나타내며 다운로드 진행률 표시가 가능하다!
Content-Disposition : attachment
무조건 다운로드하라는 의미
이게 없으면


PHP파일이 저장되고
요렇게 떠버린당
휴
'모의해킹' 카테고리의 다른 글
| PHP + MySQL 게시판 제작 - 게시글 수정 (0) | 2026.02.16 |
|---|---|
| PHP + MySQL 게시판 제작 - 게시물 삭제 (0) | 2026.02.16 |
| PHP + MySQL 게시판 제작 - 게시글 조회 (0) | 2026.02.16 |
| PHP + MySQL 게시판 제작 - 게시글 작성 (+파일 업로드) (0) | 2026.02.16 |
| PHP + MySQL 게시판 제작 - 게시판 검색 기능 (0) | 2026.02.16 |