wonder

정보보안 스터디 - 6주차 5일 - 파일 다운로드 기능 본문

hacking study/웹개발

정보보안 스터디 - 6주차 5일 - 파일 다운로드 기능

wonder12 2022. 11. 22. 02:50

 

☞ 개요: 아이디어 구상

 

다운로드 기능에 대해 검색을 해보니까 너무 복잡하고 어렵게 나와서 스스로의 힘으로 구현 하려고 했습니다.

최대한 간단하지만 기능은 작동하도록 하는 것이 충분히 가능했습니다.

 

 

 

저번시간에 파일 업로드까지 구현했습니다.

 

view페이지에서 업로드한 파일을 보기위해서는

글 번호에 대한 파일을 불러와야하기 때문에 DB에 연결해주는 작업이 필요합니다.

 

 

DB에 '파일이름' 열을 추가해줍니다. 

 

 

 

☞ 파일 업로드 할 때 쿼리문

 

(writepost.php)

만약 파일을 올리지않고 그냥 글을 썻을 때는 보통처럼 글을 업로드합니다.

 

 

 

파일이 있을 경우에는 파일을 upload/파일명으로 디렉토리에 넣고

해당 파일명을 DB의 '파일이름'에 넣습니다.

 

 

☞ view페이지 파일명 노출

 

 

그다음 view 페이지에서 글 번호에 해당하는 파일명 데이터값을 출력합니다.

폰트를 작게하고 파란색으로 파일을 구분했습니다.

 

다운받기를 클릭하게 되면 자바스크립트가 실행되는데

id에 대한 값, 즉 확장자를 포함한 파일이름을 변수 ff로 지정합니다.

만약 ff에 값이 들어있다면 GET방식으로 다운로드파일에 이동합니다.

 

 

☞ 파일 다운로드 페이지

 

 

파일명을 get방식으로 받아서 파일경로를 업로드된 파일명으로 지정합니다.

 

 

파일을 다운받으려면 헤더 정보를 서버에 보내주는 작업이 필요합니다.

파일 경로와 이름, 그리고 파일 크기 등 정보를 보내주고

사실 헤더보다 중요한 건 윗부분과 basename 설정입니다. 

 

페이지로 들어오면 파일을 읽어들이면서 다운받게 됩니다.

 

 

 

 

애초에 글을 쓸 때부터 중복된 파일명은 등록불가이기 때문에

중복없이 잘 작동합니다.

 

 

 

 

 

 

Comments