게시글 작성시 발송되는 메일 질문드립니다.

게시글 작성시 발송되는 메일 질문드립니다.

QA

게시글 작성시 발송되는 메일 질문드립니다.

본문

온라인문의 게시판을 제작중입니다.

문의글 등록 시 관리자에게 문의 내용을 메일로 발송하려합니다.

메일은 잘 발송되는데 문제는 첨부파일을 메일에 함께 첨부해서 발송해야합니다.

 

첨부파일 관련 소스는 다음과 같습니다.

 

wirte.skin.php


<td colspan="4">
                <input type="file" name="bf_file[]" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="upload-file frm_file frm_input " onchange="document.getElementById('file_name').value = this.value.replace(/c:\\fakepath\\/i,'')"  style="display:none;">
                <input type="text" id="file_name" readonly placeholder="※ 첫거래 업체는 사업자등록증을 필히 첨부 바랍니다.">
                <button class="file_btn"><img src="/rigas/skin/board/inquiry_kr/img/file.png" alt="icon">파일선택</button>
            </td>

 

첨부파일 등록 쪽은 위와 같으며

 

구글링으로 얻은 소스를 조금 수정하여

wirte_update.php 파일에 다음과 같이 추가하였습니다.


if($mode == "send") {
        //파일첨부 시작
        $file = $_FILES['file']['name'];
        $target = "/tmp/".$file;
        if (move_uploaded_file($_FILES['file']['tmp_name'], $target)) {
            chmod("$target", 0777);
        }
        
        $attach[$i] = attach_file($file, $target);
        //업로드 파일을 삭제한다.
        @unlink($target[$i]);
    }

위와 같이 작성했을 때, 

1.

wirte.skin.php에 있는 input의 name값을 'file'로 통일 시켜주어야만 메일에 파일이 첨부됩니다.

bf_file배열을 어떻게 넣어야 하는지.. 

 

2. write_update.php에 위 코드를 삽입 하면 첨부파일을 등록하지 않으면 글 자체가 등록이 안되더군요. 첨부파일이 비어있으면 에러가 나는 걸까요?

 

선배분들의 도움을 요청합니다...

이 질문에 댓글 쓰기 :

답변 2

지금 방식은 bf_file 파일은 배열방식으로 처리되기때문에 for문으로 size를 체크해서 적용해 주셔야 하는 부분입니다.

참고 그리고 첨부파일이 있을때와 그냥 내용만 보낼때 방식을 별도로 구분해서 처리해 주셔야 합니다.

 

해당 /bbs/write_update.php 파일을 보시고 참고해서 적용해 주시면 됩니다.

 

참고로 for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) 이렇게 bf_file을 돌려서 적용해 주셔야 하는 부분입니다.

도움 주셔서 감사합니다.


if($mode == "send") {
        //파일첨부 시작
        for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
            $file[$i] = $_FILES['bf_file'][$i]['name'];
            $target[$i] = "/tmp/".$file;

            if (move_uploaded_file($_FILES['bf_file'][$i]['tmp_name'], $target[$i])) {
                chmod("$target[$i]", 0777);   
            }
		
            $attach[$i] = attach_file($file[$i], $target[$i]);
            
            //업로드 파일을 삭제한다.
            @unlink($target[$i]);
        }
	}
	//파일첨부 끝


이렇게 묶어봤는데 틀린부분이 있을까요?

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

회원로그인

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