파일 업로드 및 다운로드 기능과 조회수 카운트기능을 구현할 거다.
먼저 topic 테이블에 컬럼을 추가해 줬다.
나는 게시글 하나에 파일이 1개씩 들어갈 수 있게 만들었다.
파일을 관리해 주는 테이블을 따로 만들고 게시글 id 값을 할당해 줘서 파일을 여러 개 올리는 방법도 있지만 여기선 게시글 하나에 1개씩 올라가게 설정했다.
파일을 업로드하려면 form에서 enctype="multipart/form-data"을 입력해줘야 한다.
POST에서만 사용 가능하다.(GET에서는 사용 불가)
process_writing.php를 수정했다
업로드를 수행하는 동안 $tmpfile로 임시로 저장을 하고 파일의 이름은 $f_name에 저장시킨다.
iconv 함수를 이용하여 한글 인코딩이 깨지지 않도록 한다.
이미지를 저장할 폴더를 설정해 주고 SQL문도 수정해 준다.
첨부파일 폼을 추가시켜주고
게시글 작성으로 파일을 업로드시켜준다.
게시글을 작성하고 글을 확인하면 파일이 업로드된 것을 확인할 수 있다.
download를 이용하여 파일을 다운로드할 거고 파일의 경로를 지정해 준다.
파일이 정상적으로 다운되었다.
게시글을 수정은 modify.php에서 수정과정을 진행하는 폼에 enctype="multipart/form-data"를 입력해 주고
게시글 수정 페이지의 CSS와 폼을 수정해 준다.
첨부파일을 변경하지 않으면 기존의 파일로 저장이 되고 첨부파일을 수정하면 변경된 파일로 저장이 된다.
이로써 파일 업로드와 다운로드는 구현이 됐다.
다음은 조회수 카운트 기능이다.
이 기능은 생각보다 간단하다.
topic 테이블에 hit라는 컬럼이 존재하고 글 작성자가 아닌 다른 사용자가 글을 눌렀을 때 1씩 증가하게 만들었다.
read.php를 수정하였고 게시글을 읽고 게시판으로 돌아가면 조회수가 1 증가한다.
로그인 한 사람은 1234이고 42번 글의 작성자는 tilda이다.
게시글을 읽고 목록을 눌러서 돌아가면 조회수가 증가돼있는 것을 확인할 수 있다.
'공부 > WEB개발 과제' 카테고리의 다른 글
[10주차-1] 추천(좋아요) 기능 (0) | 2023.06.02 |
---|---|
[9주차-1] 게시글 날짜 지정 검색 (0) | 2023.05.31 |
[7주차-1] 게시글 페이징 기능 만들기 (0) | 2023.05.15 |
[6주차-4] CSS 적용시키기 2 (0) | 2023.05.11 |
[6주차-3] CSS 적용시키기 1 (0) | 2023.05.10 |