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

KothingEditor 파일 첨부 관련 문제 채택완료

iiliiiliii 4년 전 조회 1,935

https://sir.kr/g5_plugin/6765 에디터를 사용중입니다.

다 좋은 에디터인데.... 이미지가 base64로만 올라갑니다...ㅜ

그래서 이미지 용량이 크면 잘려서 보이는 현상이 생기더라고요

 

https://github.com/kothing/kothing-editor 깃허브에 나와있는대로 설정을 참고해서

data 파일로 저장하게끔 바꾸었습니다.

</p>

<p>imageUploadUrl  : "/plugin/editor/KothingEditor/imageUpload.php",</p>

<p>

이제는 파일이 아예 안올라가지는거...같아요. 느낌상 파라미터를 잘못받는거 같은데 뭐가 문제인지 모르겠습니다. ㅜㅜ 도와주세요

 

config.js

</p>

<p>var config =  {

    //plugins: plugins,

    showPathLabel : false,

    charCounter : true,

    maxCharCount : 65535,

    width : '100%',    

    height : 'auto',

    minHeight : '300px',

    lang: KEDITOR_LANG['ko'],</p>

<p>    imageUploadUrl  : "/plugin/editor/KothingEditor/imageUpload.php",

    font: ['나눔고딕','나눔고딕Bold','독립기념관체','제주명조','Arial', 'Comic Sans MS', 'Courier New', 'Impact',

                    'Georgia','tahoma', 'Trebuchet MS', 'Verdana'],

    buttonList : [

        ['undo', 'redo', 'font', 'fontSize', 'formatBlock'],

        ['bold', 'underline', 'italic', 'strike', 'subscript', 'superscript', 'removeFormat'],

        '/' // Line break

        ['fontColor', 'hiliteColor', 'outdent', 'indent', 'align', 'horizontalRule', 'list', 'table'],

        ['link', 'video', 'fullScreen', 'showBlocks', 'codeView', 'preview', 'print']

    ],

    callBackSave : function (contents) {

        return contents;

    },

};</p>

<p>

 

imageUpload.php

</p>

<p><?php 

include "_common.php";

$bo_table = $_POST['bo_table'];

$g5['board_table'] = G5_TABLE_PREFIX.'board'; // 게시판 설정 테이블

$sql = "SELECT * FROM {$g5['board_table']} WHERE bo_table = '{$bo_table}'";

$cf = sql_fetch($sql);

$ym = date('ym', G5_SERVER_TIME);</p>

<p>$data_dir = G5_DATA_PATH.'/editor/'.$ym;

$data_url = G5_DATA_URL.'/editor/'.$ym;</p>

<p>@mkdir($data_dir, G5_DIR_PERMISSION);

@chmod($data_dir, G5_DIR_PERMISSION);</p>

<p>$target_dir = G5_DATA_PATH.'/editor/';

$uploadOk = 1;

$imageFileType = strtolower(pathinfo($_FILES["editor_file"]['name'][0],PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image

$check = getimagesize($_FILES["editor_file"]["tmp_name"]);

if($check !== false) {

    //echo "File is an image - " . $check["mime"] . ".";

    $uploadOk = 1;

} else {

    echo json_encode(array('msg'=> '이미지 파일이 아닙니다'));

    $uploadOk = 0;

    exit;

}

// Check file size

if ($_FILES["editor_file"]["size"][0] > $cf['bo_upload_size']) {

    echo json_encode(array('msg'=> '파일의 용량이 '.$cf['bo_upload_size'].'byte 보다 큽니다'));

    $uploadOk = 0;

    exit;

}

// Allow certain file formats

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"

&& $imageFileType != "gif" ) {

    echo json_encode(array('msg'=> '이미지 파일이 아닙니다'));

    $uploadOk = 0;

    exit;

}

// Check if $uploadOk is set to 0 by an error

if ($uploadOk == 0) {

    echo json_encode(array('msg'=> '정상적으로 파일이 업로드 되지 않았습니다'));

// if everything is ok, try to upload file

} else {

    $filename = time().".".$imageFileType;

    $save_dir = sprintf('%s/%s', $data_dir, $filename);

    if (move_uploaded_file($_FILES["editor_file"]["tmp_name"][0], $save_dir)) {

        $save_url = sprintf('%s/%s', $data_url, $filename);

        echo json_encode(array('src'=> $save_url));

    } else {

        echo json_encode(array('msg'=> '이미지 저장에 실패하였습니다'));

    }

}

?></p>

<p>

 

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

답변 2개

영앤코딩

imageUpload.php에서 오류가 발생해서 그렇습니다.
$g5['board_table'] = G5_TABLE_PREFIX.'board'; // 게시판 설정 테이블
    $sql = "SELECT * FROM {$g5['board_table']} WHERE bo_table = '{$bo_table}'";
    $cf = sql_fetch($sql);
부분을 if($bo_table)조건이 참인경우에 작동되게 수정하시고
 // Check file size
    if ($_FILES["editor_file"]["size"][0] > $cf['bo_upload_size']) {
        echo json_encode(array('msg'=> '파일의 용량이 '.$cf['bo_upload_size'].'byte 보다 큽니다'));
        $uploadOk = 0;
        exit;
    }
줄도 참인경우에 작동되게 수정하세요.

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

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

그냥 개발자분한테 여쭤보세요 볼피드님 같은데 그분한테 한번 의뢰 해보신게?

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

답변에 대한 댓글 1개

i
iiliiiliii
4년 전
혼자 해결할 능력이 없어서... 다른 에디터로 교체 했습니다ㅜㅠ

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

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

로그인