안녕하세요!! 서버 db에 저장 질문 드립니다!!

안녕하세요!! 서버 db에 저장 질문 드립니다!!

QA

안녕하세요!! 서버 db에 저장 질문 드립니다!!

본문

먼저..  웹프로그래밍을 입문한지 얼마 안되서 문법이나 각종 지식이 부족한점을 이해 부탁드립니다.

 

제가 구현하고 싶은 기능은 제출버튼을 누르면 이후 한번더 확인 및 취소 버튼이 뜨고 그 다음에 문제없으면 확인 버튼을 클릭하면 현재 웹페이지 이미지가 서버 db에 저장되는것을 구현하고싶습니다.!!

 

현재는 제출버튼을 클릭하면 아래 코드가 작동하여 한번 더 확인해 주는 코드로써 여기서 한번 더 확인을 하면 제가 설정한 action= 페이지 로 이동하게 되는데

 

이러한 이동전에 현 웹 전체 페이지의 이미지를 db에 저장하고 싶은데 도저히 방법을 모르겠습니다 ㅠㅠ

 

제 설명의 이해를 돕기위하여 주소 = https://kmskakao.run.goorm.io/confirm 

에 들어가셔서 여러 input 값에 입력 후  제출버튼을 누르면 한번 더 확인하는 창이 뜨고

여기서도 확인을 한번더 누르면 '제출이 완료되었습니다' 란 페이지로 이동하게 됩니다.

 

그 전에 페이지가 넘어가기 전에 전체 이미지를 저 서버 db에 저장하는 코드를 어떻게 짜면 좋을까요 ㅠㅠ??

 

상세히 가르쳐 주시면 정말로 감사하겠습니다!!(엄청 찾아봤는데 이해를 잘못했네요 ㅠ) 아 추가적으로 db저장 주소도 어떻게 설정하면 될지도 가르쳐주시면 정말 감사하겠습니다 ㅠㅠ (웹이 처음이라서 많이 헤매네요 ㅠㅠ) 

 

제출 직전에 확인 코드는 아래와 같습니다..

 

function confirmSubmit()
        {    
            var name = document.forms["commentForm"]["name"].value;
            var number = document.forms["commentForm"]["number"].value;
            var compony = document.forms["commentForm"]["compony"].value;
            var agree=confirm("이름 : " + name + "  운수사 : " + compony + "  전화번호 : " + number + "  가 맞습니까?");
            if (agree)
              return true;
            else
             return false;
        }

이 질문에 댓글 쓰기 :

답변 1

질문에 약간의 모순이 있습니다

저장전에 폼거사를 해서 이상이 없으면 저장을 한다 그런데 저장전에 이미지를 먼저 저장한다

 

질문요지는 폼검사와 함께 이상없으면 이미지를 저장한다가 맞는거겠죠 

글이란게 한개의 글자가 추가되어서 뜻이 완전히 바뀌게 해석될수도 있습니다

 

 

먼저 폼 안에 이미지를 넘길수 있게 파일타입의 인풋을 추가해 줍니다

 

1) . <input type="file" name="up_img">

 

위와 같이 추가해주고 넘기면  이미지를 선택해서 넘기면 기본적으로  액션 페이지 ( 글 저장관련 페이지 )로

넘어갑니다

 

그런데 이미지라는게 디비에 저장하는 방식도 있지만 거의 대부분 파일 서버에 기본적으로 저장해서 

관리들을 많이 합니다

 

그렇기에 사용하시는 서버에 이미지를 저장할 공간을 마련해야 합니다

2). 루트에 data란 폴더를 만들고 거기에 이미지를 저장한다고 가정했을때 아래와 같은 주소를 갖게 되겠죠

 https://kmskakao.run.goorm.io/data/업로드된 이미지들

 

3). 여기서 data 폴더에 업로드할수 있는 폴더권한을 줘야 합니다 ( 755 ) 

폴더 권한 주기가 이해가 안되시면 그누보드에서 폴더 권한으로 검색하시거나 혹은 구글에서 검색해 보세요

 

4). 디비에 이미지가 들어갈 글 저장 관련 데이터 테이블에 디비 필드를 추가해 줍니다 

     ( 예를 들기위해서 up_img 란 필드를 추가해줬다고 보겠습니다 )

 

5).그 다음 작업은 업로드 된 파일을 제대로 data란 폴더로 옮기는 작업을 액션 페이지 ( 글 저장관련 페이지 )에 추가해 줘야 합니다

 

   $temp_name  = $_FILES['up_img']['tmp_name']; // 업로드된 이미지의 템프 이름
   $file_name     = $_FILES['up_img']['name'];       // 업로드된 실제이름
   $file_size       = $_FILES['up_img']['size'];          // 이미지 사이즈
   $file_type      = $_FILES['up_img']['type'];         // 파일의 종류
   $file_error     = $_FILES['up_img']['error'];        // 에러종류

   $file_temp_path = '홈페이지 절대경로/data/'.$file_name; 

   $db_up_img   = "";// 디비에 저장될 파일 주소명

    if($_FILES['up_img']) { // up_img 라는 이름의 데이터 파일 업로드가 있다면

           
            if(move_uploaded_file($temp_name, $file_temp_path)){ //템프파일을 마련된 data폴더로 이동

                   $db_up_img = "data/".$file_name; // test.gif 란 이미지를 업로드시 디비에 data/test.gif 저장
            }

            else{

                  echo"파일 업로드를 실패했습니다";

                  exit;

           }

    }

    나머지 기존 소스들

 

   대략 위와 같이 하고

   나머지 기존 소스에 디비에 입력되는 부분에 이미지 관련 데이터를 저장하는 소스를 추가해 줘야 합니다

 

   INSERT INTO 사용하는 테이블명(기존필드명, up_img ) VALUES (기존업데이트변수명, '$db_up_img')

   up_img라는 예로든 추가된 필드에 업로드된 이미지인 $db_up_img (data/test.gif) 가 저장됩니다

   보기 페이지등에서는 입력된 up_img필드값을 불러다 이미지 태그 안에 주소를 넣어주면 되겠죠

 

 

   간략히 위의 상황을 정리한다면 아래와 같습니다

 

   data 폴더를 만들고 폴더 권한을 변경해야 한다

   이미지가 들어갈 필드를 데이터 베이스의 사용하는 테이블에 추가해 줘야 한다

   사용하는 폼입력에 파일타입의 인풋을 넣어주고 넘겨야 한다

   저장 페이지에서는 업로드된 파일형태의 코드가 있는지 확인해서 이미지를 만들어진 data 파일로

   옮기고 디비에 저장될 주소를 만들어주고 최종 디비에 업데이트 한다 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

정말로 너무너무 감사합니다. 일단 배경지식이 좀 부족하다보니 제가 먼저 생각하고 구현을 생각하다보니 다소 질문이나 여러 점에서 모순이 발생된다는점이 있을 수 밖에 없네요 정말 감사드립니다!!!

답변을 작성하시기 전에 로그인 해주세요.
전체 21
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT