반응형
저번 포스팅에서는 파일을 업로드하는 기능을 구현했었다.
파일을 확인(View), 삭제(Delete), 다운로드(Download)하는 기능을 추가로 만들 것이다.
우선 파일 이름을 저장해놓아야 표시, 삭제, 다운로드할 때 사용할 수 있으므로 MySQL에 추가하자.
ALTER table board add column `file` varchar(20);
이제 게시판에 글을 작성할 때, file을 업로드하면 파일 이름을 MySQL에 저장하고, file이 없으면 NULL을 저장하도록 코드를 추가해주자.
[board_create.php]
if($_FILES['upload_file'] != NULL){
$tmp_name = $_FILES['upload_file']['tmp_name'];
$name = $_FILES['upload_file']['name'];
$path = "./files/$username";
if(!file_exists($path)){
mkdir($path, 0777, true);
chmod($path, 0777);
$up = move_uploaded_file($tmp_name, "$path/$name");
}else{
$up = move_uploaded_file($tmp_name, "$path/$name");
}
}else{
$name = "NULL";
}
$sql = "INSERT INTO board (username, title, date, time, content, file)
VALUES ('$username', '$title', '$date', '$time', '$content', '$name');";
글을 읽을 때는 View, Delete(작성자에게만 활성화), Download를 할 수 있도록 구현하자.
[read.php]
$file_name = $row['file'];
<div>
<a href="http://localhost/web_dev/files/<?=$username?>/<?=$file_name?>" target="_blank">View</a>
<a href="#">Delete</a>
</div>
우선 View 기능만 만들어보았다.
test 계정으로 로그인해서 olaf.jpeg를 추가하고 MySQL에 잘 저장되는지, read 화면에서 잘 뜨는지 확인해보자.
olaf 파일을 추가하고 게시판을 확인해보니, View와 Delete 글씨가 보인다.
MySQL을 확인해보니, test 계정으로 업로드한 파일 이름이 잘 저장되었다.
View 버튼을 클릭하니 사진이 잘 뜨는 것을 확인할 수 있다.
나중에 3가지 기능을 모두 구현하고 나면, 사진은 <img> 태그를 이용해서 바로 보여주고, pdf 같은 파일은 위와 같이 view/download 할 수 있도록 구현하는 것도 좋을 것 같다.
반응형
'WEB HACKING > 웹 해킹[실습]' 카테고리의 다른 글
Php로 웹 개발하기 : 게시판(15) - 파일 다운로드 (0) | 2021.12.06 |
---|---|
Php로 웹 개발하기 : 게시판(14) - 파일 삭제 (0) | 2021.12.03 |
Php로 웹 개발하기 : 게시판(12) - 파일 업로드 (0) | 2021.11.30 |
Php로 웹 개발하기 : 게시판(11) - 좋아요 (0) | 2021.11.28 |
Php로 웹 개발하기 : 게시판(10) - 조회수 (0) | 2021.11.27 |
댓글