본문 바로가기
공부/WEB개발 과제

[8주차-1] 파일 업로드 및 다운로드, 조회수 카운트

by TILDA_16 2023. 5. 24.

파일 업로드 및 다운로드 기능과 조회수 카운트기능을 구현할 거다.

 

먼저 topic 테이블에 컬럼을 추가해 줬다.

 

나는 게시글 하나에 파일이 1개씩 들어갈 수 있게 만들었다.

 

파일을 관리해 주는 테이블을 따로 만들고 게시글 id 값을 할당해 줘서 파일을 여러 개 올리는 방법도 있지만 여기선 게시글 하나에 1개씩 올라가게 설정했다.

 

writing.php 수정

파일을 업로드하려면 form에서 enctype="multipart/form-data"을 입력해줘야 한다.

 

POST에서만 사용 가능하다.(GET에서는 사용 불가)

 

process_writing.php 수정

process_writing.php를 수정했다

 

업로드를 수행하는 동안 $tmpfile로 임시로 저장을 하고 파일의 이름은 $f_name에 저장시킨다.

 

iconv 함수를 이용하여 한글 인코딩이 깨지지 않도록 한다.

 

이미지를 저장할 폴더를 설정해 주고 SQL문도 수정해 준다.

첨부파일 FORM

 

첨부파일 폼을 추가시켜주고

 

파일을 업로드 과정

게시글 작성으로 파일을 업로드시켜준다.

 

게시글을 작성하고 글을 확인하면 파일이 업로드된 것을 확인할 수 있다.

 

read.php 수정

download를 이용하여 파일을 다운로드할 거고 파일의 경로를 지정해 준다.

 

파일 다운로드 과정

 

파일이 정상적으로 다운되었다.

 

게시글을 수정은 modify.php에서 수정과정을 진행하는 폼에 enctype="multipart/form-data"를 입력해 주고 

modify.php 수정

 

게시글 수정 페이지의 CSS와 폼을 수정해 준다.

 

수정된 CSS와 폼

 

첨부파일을 변경하지 않으면 기존의 파일로 저장이 되고 첨부파일을 수정하면 변경된 파일로 저장이 된다.

 

업로드한 게시글 파일 수정

이로써 파일 업로드와 다운로드는 구현이 됐다.

 

다음은 조회수 카운트 기능이다.

 

이 기능은 생각보다 간단하다.

 

topic 테이블에 hit라는 컬럼이 존재하고 글 작성자가 아닌 다른 사용자가 글을 눌렀을 때 1씩 증가하게 만들었다.

 

read.php 수정

 

read.php를 수정하였고 게시글을 읽고 게시판으로 돌아가면 조회수가 1 증가한다.

 

조회수 카운트 기능

로그인 한 사람은 1234이고 42번 글의 작성자는 tilda이다.

 

게시글을 읽고 목록을 눌러서 돌아가면 조회수가 증가돼있는 것을 확인할 수 있다.