채택완료

data에 폴더 생성이 안되는거 같아요..

방금전만해도 500에러가 없었는데.. 다시... http error 500이 뜨네요..

그리고.. @mkdir(G5_DATA_PATH.'/editor/'.$bo_table,G5_DIR_PERMISSION);를 했는데도..

data 폴더/editor/에 폴더가 생성이 안됩니다.

$bo_table 함수는 게시판 제목으로 들어가는 함수 입니다.

 

제가 어디 실수 한 부분이 있나요..?

 

 

 

Copy
<?php
include_once('./_common.php');

    // 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
    @mkdir(G5_DATA_PATH.'/editor/'.$bo_table,G5_DIR_PERMISSION);
    @chmod(G5_DATA_PATH.'/editor/'.$bo_table,G5_DIR_PERMISSION);
    
// 오늘 날짜
$ymd = date("ymd", G5_SERVER_TIME);

// 허용 된 확장.
$allowedExts = array("gif", "jpeg", "jpg", "png");

// 파일 이름을 가져옵니다.
$temp = explode(".", get_safe_filename($_FILES["file"]["name"]));

// 확장자를 가져옵니다. 
$extension = end($temp);

// 이미지 점검은 편집기에서 수행되지만 서버 측에서 다시 확인하는 것이 좋습니다.
// 쉽게 위조 될 수 있으므로 $ _FILES [ "file"] [ "type"]을 사용하지 마십시오.

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES["file"]["tmp_name"]);


if ((($mime == "image/gif")
    || ($mime == "image/jpeg")
    || ($mime == "image/jpg")
    || ($mime == "image/png"))
    && in_array(strtolower($extension), $allowedExts)) {


    // 새로운 임의의 이름을 생성합니다.
    $name = $ymd. "_" .$bo_table. "_" .strtolower($extension);
    $savefile = G5_DATA_PATH.'/editor/'.$bo_table.'/'.$ymd.'/' .$name;

    // uploads 폴더에 파일을 저장합니다.
    move_uploaded_file($_FILES["file"]["tmp_name"], $savefile);

    // 올라간 파일의 퍼미션을 변경합니다.
    chmod($savefile, 0606);

    // 응답을 생성합니다.
    $response = new StdClass;
    $response->link = $savefile;
    
    // 응답을 보냅니다.
    echo stripslashes(json_encode($response));

}

?>
|

답변 3개

채택된 답변
+20 포인트

$bo_table 이 어디에 선언되어있나요?

Copy
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
@mkdir(G5_DATA_PATH.'/editor/'.$bo_table,G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/editor/'.$bo_table,G5_DIR_PERMISSION);

 

여기 부분위에 $bo_table = 'test';

이런식으로 변수에 게시판 명을 넣어줘야 해당 이름으로 생성되지 않을까요?

에러를 잡으려면 하나씩 echo 로 찍어보시는 것이 좋습니다.

상단에 찍어보세요

Copy
echo $bo_table;

exit;

이렇게요

권한은 먼저 확인해보셨나요? 

만일 리눅스 계열이라면 우선 가장 기초적인 권한 체크부터 해보시는 게 좋을 듯 합니다.

그 다음 해당 경로가 올바른지도 확인해 보신후에 그누위즈님 말씀대로 해보시는게 답일 듯 합니다.

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