테스트 사이트 - 개발 중인 베타 버전입니다

파일 업로드 관해서 채택완료

crypt2hex 7년 전 조회 2,299

배열로 파일을 받고 있습니다.

근데 첨부파일을 넣지않고 하면 $body_file 이 공백으로 출력이 됩니다.ㅠㅠ

기존 DB에서 불러와야 되는건가요 첨부파일을? 그리고 입력부분에 변경된 내역이 있으면

배열로 받아서 달라진 점을 수정해서 쿼리 업데이트를 해야하는건지..ㅠ

 

</p>

<p><input type="hidden" name="kc_file_num" id="kc_file_num" value="<?php echo$kc['kc_file_num']?$kc['kc_file_num']:"0";?>"></p>

<p> </p>

<p><? $k=0; for($i=0;$i<$kc['kc_file_num'];$i++) { $k++; ?>

        <tr>

            <th scope="row"><label for="kc_content[<?php echo $k?>]">본문 이미지 <?php echo $k;?></label></th>

            <td colspan="3">

            <?php

                    $img_st = explode("|", $kc['kc_content']);

                    $img_path = str_replace(G5_URL,'',$img_st[$k]);

                    $img_path = str_replace("/","\\",$img_path);

                    if($kc['kc_content']) { $img_path = "..".$img_path; }

            ?>

            <input type="file" name="kc_content[<?php echo $k?>]" id="kc_content" multiple>

            <?

                if (file_exists($img_path)) {

                    echo '

<input type="checkbox" id="kc_body_src_del" name="kc_body_src_del" value="1">이미지 삭제';

                    echo '
<img src="'.$img_path.'" width="50%" alt="">';

                }

            ?>

            </td>

        </tr>

        <?}?></p>

<p> </p>

<p><script>

var num = $('#kc_file_num').val();

function content_add()

{

    num++;

    $('#kc_file_num').val(num);

    $('#tb > tbody:last').append('<tr><th scope="row"><label for="kc_content['+ num +']">본문 이미지 '+ num +'</label></th><td colspan="3"><input type="file" name="kc_content['+ num +']" id="kc_content"></td></tr>');

}

</script></p>

<p>

 

</p>

<p>for($k=0;$k<$_POST['kc_file_num'];$k++)

{

    // 이미지 저장

    if (is_uploaded_file($_FILES['kc_content']['tmp_name'][$k])) {

        if (!preg_match("/(\.jpg)$/i", $_FILES['kc_content']['name'][$k])) {

            alert($_FILES['kc_content']['name'][$k] . '은(는) jpg 파일이 아닙니다.');

        }</p>

<p>        if (preg_match("/(\.jpg)$/i", $_FILES['kc_content']['name'][$k])) {

        @mkdir(G5_DATA_PATH.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/', G5_DIR_PERMISSION);

        @chmod(G5_DATA_PATH.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/', G5_DIR_PERMISSION);</p>

<p>        //@unlink($img_path); // 기존 이미지가 있으면 삭제 후 진행 함

        //$head_file = "";</p>

<p>        $dest_path = G5_DATA_PATH.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/';

        $md5_img = md5_file($_FILES['kc_content']['tmp_name'][$k]).".jpg";</p>

<p>        move_uploaded_file($_FILES['kc_content']['tmp_name'][$k], $dest_path.$md5_img);

        chmod($dest_path, G5_FILE_PERMISSION);</p>

<p>        $body_file = "|";

        $body_file .= G5_DATA_URL.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/'.$md5_img;

        echo $body_file;

        }

    }

}</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

파일이 올라와 있는지 없는지

if문으로 판단하여 

파일이 올라와있다면 모든 내용을 업데이트하고

파일이 올라와 있지 않다면 파일을 제외한 나머지 부분만 업데이트 하면 될 것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

c
crypt2hex
7년 전
결국 이방법밖에 없겠죵?ㅠ
하찌
7년 전
방법은 여러가지가 있겠지만, 이보다 좋은 방법은 떠오르질 않네요~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인