관리 메뉴

웹개발자의 기지개

[PHP] 네이버에디터2 폴더변경시 수정사항 본문

PHP

[PHP] 네이버에디터2 폴더변경시 수정사항

http://portfolio.wonpaper.net 2024. 9. 12. 18:04

보통의 경우 필자는 /smarteditor2/ 형태로 root 상에 위치시켜고 작업하는데,

/2024/ 폴더안에 /2024/smarteditor2/ 형태로 만들어야 하는 상황이 발생하였다.

 

네이버에디터2 의 폴더가 루트에서 특정 폴더로 바뀌었을때, 아래의 관련 소스를 살짝 수정하면 잘 작동한다.

 

 

 

 

 

[ attach_photo.js ]

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    //File API 지원 여부로 결정
    function checkDragAndDropAPI(){
        try{
            if!oNavigator.ie ){
                if(!!oNavigator.safari && oNavigator.version <= 5){
                    bSupportDragAndDropAPI = false;
                }else{
                    bSupportDragAndDropAPI = true;
                }
            } else {
                bSupportDragAndDropAPI = false;
            }
        }catch(e){
            bSupportDragAndDropAPI = false;
        }
 
        bSupportDragAndDropAPI = false;
    }
cs

 

bSupportDragAndDropAPI = false; 해서 드래그 파일첨부 방식이 아니라, 일반 파일업로드 방식으로 수정

 

 

[ file_uploader.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
<?php
// default redirection
$url = 'callback.html?callback_func='.$_REQUEST["callback_func"];
$bSuccessUpload = is_uploaded_file($_FILES['Filedata']['tmp_name']);
 
// SUCCESSFUL
if(bSuccessUpload) {
    $tmp_name = $_FILES['Filedata']['tmp_name'];
    $name = $_FILES['Filedata']['name'];
    
    $filename_ext = strtolower(array_pop(explode('.',$name)));
    $allow_file = array("jpg""png""bmp""gif");
    
    if(!in_array($filename_ext$allow_file)) {
        $url .= '&errstr='.$name;
    } else {
        $uploadDir = '../../upload/';
        if(!is_dir($uploadDir)){
            mkdir($uploadDir0777);
        }
        
        $newPath = $uploadDir.urlencode($_FILES['Filedata']['name']);
        
        @move_uploaded_file($tmp_name$newPath);
        
        $url .= "&bNewLine=true";
        $url .= "&sFileName=".urlencode(urlencode($name));
        $url .= "&sFileURL=/2024/smarteditor2/upload/".urlencode(urlencode($name));
    }
}
// FAILED
else {
    $url .= '&errstr=error';
}
    
header('Location: '$url);
?>
cs

 

28라인에 /2024/ 폴더를 앞에 삽입

 

[ file_uploadder_html5.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
<?php
     $sFileInfo = '';
    $headers = array();
     
    foreach($_SERVER as $k => $v) {
        if(substr($k09== "HTTP_FILE") {
            $k = substr(strtolower($k), 5);
            $headers[$k= $v;
        } 
    }
 
    $filename = rawurldecode($headers['file_name']);
    $filename_ext = strtolower(array_pop(explode('.',$filename)));
    $allow_file = array("jpg""png""bmp""gif"); 
 
    if(!in_array($filename_ext$allow_file)) {
        echo "NOTALLOW_".$filename;
    } else {
        $file = new stdClass;
        $file->name = date("YmdHis").mt_rand().".".$filename_ext;
        $file->content = file_get_contents("php://input");
 
        $uploadDir = '../../upload/';
        if(!is_dir($uploadDir)){
            mkdir($uploadDir0777);
        }
        
        $newPath = $uploadDir.$file->name;
        
        if(file_put_contents($newPath$file->content)) {
            $sFileInfo .= "&bNewLine=true";
            $sFileInfo .= "&sFileName=".$filename;
            $sFileInfo .= "&sFileURL=/2024/smarteditor2/upload/".$file->name;
        }
        
        echo $sFileInfo;
    }
?>
cs

 

33라인에 /2024/ 폴더를 앞에 삽입

 

 

Comments