티스토리 뷰

반응형

이전 포스팅을 참고하시고 오시면 더욱 좋습니다.

1. PHP MySQL Hash 함수를 사용한 파일관리 - 파일 업로드

2. PHP MySQL Hash 함수를 사용한 파일관리 - 파일 조회, 다운로드



※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.



마지막으로 delete.php 를 구현하여 파일삭제를 해보도록 하겠습니다.


delete.php 의 php 소스입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php    
 
    if(!$_GET['num'])
    {
        echo "<script>alert('이상하게 접근하셨습니다;;');";
        echo "history.back();</script>";
    }
    
    @ $db = new mysqli('DB호스트명''DB계정명''DB계정비밀번호''사용할DB명');
    if(mysqli_connect_errno())
    {
        echo "DB connect error";
        exit;
    }
    
    $query = "select hash from ftp where num=".$_GET['num'];
    $result = $db->query($query);
    if(!$result)
    {
        echo "select query error";
        exit;
    }
    $result = $result->fetch_assoc();
    
    $dir = "./files/";
    $filehash = $result['hash'];
    
    if(!unlink($dir.$filehash))
    {
            echo "file delete error";
            exit;
    }
    
    $query = "delete from ftp where num=".$_GET['num'];
    $result = $db->query($query);
    if(!$result)
    {
        echo "delete query error";
        exit;
    }
    
    echo "<script>alert('파일이 삭제되었습니다.');";
    echo "history.back();</script>";
 
    $db->close();
    
?>


대부분 앞의 포스팅에서 설명했던 기능들이라 딱히 설명할 건 없네요.


if(!unlink($dir.$filehash)) : unlink 함수는 해당위치의 파일을 삭제합니다. 업로드할 때 파일이름을 해시값으로 저장했기 때문에 해시명이 들어갑니다.

$query = "delete from ftp where num=".$_GET['num']; : 파일을 삭제했으므로 DB에서도 제거해야합니다. 해당 컬럼을 삭제하는 쿼리문입니다.



delete.php 가 잘 작동하나 확인해 보겠습니다.





index.php 에서 삭제할 파일의 DEL을 누르면



삭제가 되었다네요.





정말로 되었네요.




흠.. 포스팅 끗인듯..?




ps) 추신입니다. 본문에서는 작업이 완료되고 자바스크립트의 history.back() 

함수로 되돌아 갔는데 이렇게 되면 DB의 갱신이 되지 않고 페이지가 뜰 수 있습니다. 

history.back 보다는 location.href를 사용하여 페이지를 새로 읽어 들이는게 

DB 갱신에 바로바로 대응할 수 있습니다.






반응형
공유하기 링크
태그 클라우드
, ,
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

  • 프로필사진 일루 올려주신 내용 잘봤습니다~ 프로그램 완전초짜인 제겐 좋은 도움이 되었습니다. 감사합니다.
    그런데 혹시 modify 내용도 포스팅에 추가해주실 수 있을지요??
    수정내용까지 있으면 금상첨화일듯 합니다만...(사실 그 내용도 알고 싶어서..ㅜㅡㅜ;;)
    좋은 포스팅 감사합니당
    2015.03.17 09:54
  • 프로필사진 BlogIcon Yowu modify 라면 파일 수정을 말씀하시는 걸까요? DB를 업데이트하시는 것을 말하는 걸까요? ^^;; 2015.03.17 19:14 신고
  • 프로필사진 일루 아,, 네 DB 업데이트를 말하는겁니다..ㅎㅎ;;; 기존 등록된 첨부 데이타를 다른 파일로 수정하는...
    DEL 옆에 MODIFY 가 있으면 하는 바램에서...;;
    2015.03.17 23:51
  • 프로필사진 BlogIcon Yowu 네 ㅋㅋ 시간이 되면 한번 포스팅해보도록 하겠습니다. 2015.03.18 19:41 신고
  • 프로필사진 일루 ㅎ 네 감사합니다. 기다리겠(?)습니다.흐흐.. 2015.03.20 12:28
  • 프로필사진 chobo 실례가 안된다면.. 리스트에서 파일을 클릭했을떄 view(그림이 웹상에서 볼수 있게 하는 기능)은 어떻게 하는지 알려주실수 있으신가요..? 2015.09.20 10:24
  • 프로필사진 redpepper 도움 정말 많이 됐습니다. 감사합니다!! 2016.03.04 01:32
댓글쓰기 폼
«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함
Total
3,248,816
Today
618
Yesterday
500