data폴더안에 png를 넣게 세팅했는데 폴더명이 [제목].png 로 됩니다ㅠㅠ

data폴더안에 png를 넣게 세팅했는데 폴더명이 [제목].png 로 됩니다ㅠㅠ

QA

data폴더안에 png를 넣게 세팅했는데 폴더명이 [제목].png 로 됩니다ㅠㅠ

본문

https://sir.kr/g5_skin/3459?sfl=wr_subject%7C%7Cwr_content&stx=%EA%B7%B8%EB%A6%BC%ED%8C%90

 

'민기만' 님의 2014년도 스킨을 활용하여 그림판 게시판을 만드려고합니다!

 

하지만 그누보드 버젼, 코드 등이 문제가 있는지 업로드가 안되서 한참을 방법을 찾고 해서!!

드디어 data폴더에 원하는 위치에 저장은 되는데

data폴더의 형식에 png라고 해두어도 폴더명이 [폴더명].png로 될뿐입니다..!

 

변경한 것은 write.skin.php 에서


$id = uniqid();
$g5_path = "g5";// 여기에 그누 보드 설치 폴더를 넣으세요. 없으면 공란으로 두세요.
$menu_path = "/".$g5_path."/skin/board/paint/";
$image_prefix = date('Ymdms').$id.".png";
$upload_path =  G5_URL."/skin/board/paint/upload.php?bo_table=".$bo_table."&save_prefix=".$image_prefix;


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$id = uniqid();
$g5_path = "dong";// 여기에 그누 보드 설치 폴더를 넣으세요. 없으면 공란으로 두세요.
$menu_path = "/".$g5_path."/skin/board/paint/";
$image_prefix = date("Y-m-d-h-m").$id.(".png");
$upload_path =  G5_URL."/skin/board/paint/upload.php?bo_table=gallery/".$image_prefix;

로 지정 하고

 

upload.php 에서


$save_file = '../../../data/file/'.$bo_table.'/' . $save_prefix;
imagepng($image, $save_file);

// return image path
echo '{"img": "../data/file/'.$bo_table.'/wPaint-' . $id . '.png"}';
?>


$bo_table = $_GET['bo_table'];
(G5_DATA_PATH.'/file/'.$bo_table, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/file/'.$bo_table, G5_DIR_PERMISSION);
$save_file = '/dong/data/file/'.$bo_table.'/'.png;
imagepng($image, $save_file);

// return image path
echo '{"img": "/dong/data/file/'.$bo_table.'/wPaint-'.$id .'.png"}';
?>

이렇게 세팅을 하였더니 

3672945546_1661790811.1892.png

하단에 보면 image saved successfully라고 문장이 뜨면서

data/file/gallery에 들어가서 확인하면

3672945546_1661790868.9385.png

라고 나오게 됩니다...

 

혹시 저에게 지식을 알려 주실 수 있는 분이 계실 까요?? ㅠㅠ

 

이 질문에 댓글 쓰기 :

답변 5

write_update.skin.php


<?php
//$table = "g5_write_".$bo_table;
        // 파일 출력
$image_prefix = str_replace("pngpng", "png", $image_prefix);
if($w == '' && !is_file(G5_PATH.'/data/file/'.$bo_table.'/' . $image_prefix)) alert("먼저 그림을 저장 부터 하십시오");
$sql = "insert into g5_board_file
                    set bo_table = '$bo_table',
                        wr_id = '$wr_id',
                        bf_no = '0',
                        bf_source = '$image_prefix',
                        bf_file = '$image_prefix',
                        bf_content = ' ',
                        bf_download = 0,
                        bf_filesize = '0',
                        bf_width = '600',
                        bf_height = '450',
                        bf_type = '3',
                        bf_datetime = '".G5_TIME_YMDHIS."' ";
sql_query($sql);
 
sql_query(" update {$write_table} set wr_file = '1' where wr_id = '{$wr_id}' ");

plugins/모든파일에서 plugins/을 모두 /plugins/으로 바꿔야 됩니다.

엄청 설레면서 바로 해보았지만.. 아직 되지않네요 혹시나 다른 부분 건드렸나 해서 skin 다시 설치하고 해도 안되군요...
ㅠㅠ 들레아빠님은 뚝딱 성공하시는데 왜 제거는 안되는지 도무지 이해가 안되네요 죄송합니다.. ㅠㅠ

그누보드 버젼 Version 5.5.8.2 PHP Version 8.1.6입니다.
낮은 곳에서 해보고 알려 드릴게요.

그누보드 버젼 Version 5.4.22 PHP Version 7.4.9에서도 잘 됩니다.
쪽지로 메일 주소 알려 주세요. 수정 본 드릴게요.

$save_file = '/dong/data/file/'.$bo_table.'/'.png;

 

이게 이상하네요

 

.png 라는 문장 자채가 오류입니다.
변수도 아니고, 문자인데
오류발생으로 진행이 안되어야 정상인데
무시하고 진행되는게 되려 더 이상한것같구요

$save_file 명을 정상적으로 만들어지게 해야 이미지 파일명이 정상생성될겁니다.

작성자님 플래토님 답변을 다시 보셔야겠습니다.

 

$save_file = '/dong/data/file/'.$bo_table.'/'.png;

여기 코드를 보시면 $save_file에 파일이 저장되는 경로와 파일명이 들어가야하는거 같은데

저장하는 파일명이 그냥 '/'.png 로 끝나버리네요? 

 

추천 드리는거는 기존 코드의 $save_file과 변경 후 코드의 $save_file을 echo로 찍어보시고 뭐가 다르게 잘못 입력되었는지 확인 해보세요.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$id = uniqid();
$g5_path = "dong";// 여기에 그누 보드 설치 폴더를 넣으세요. 없으면 공란으로 두세요.
$menu_path = "/".$g5_path."/skin/board/paint/";
$image_prefix = date("Y-m-d-h-m").$id.(".png");
$upload_path =  G5_URL."/skin/board/paint/upload.php?bo_table=gallery/".$image_prefix;
=>

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$id = uniqid();
$image_prefix = date('Ymdms').$id.".png";
$upload_path =  $board_skin_url."/upload.php?bo_table=".$bo_table."&save_prefix=".$image_prefix;

$bo_table = $_GET['bo_table'];
(G5_DATA_PATH.'/file/'.$bo_table, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/file/'.$bo_table, G5_DIR_PERMISSION);
$save_file = '/dong/data/file/'.$bo_table.'/'.png;
imagepng($image, $save_file);

// return image path
echo '{"img": "/dong/data/file/'.$bo_table.'/wPaint-'.$id .'.png"}';
?>
=>

save_file = G5_DATA_PATH.'/file/'.$bo_table.'/' . $save_prefix;
imagepng($image, $save_file);
// return image path
echo '{"img": "'.G5_DATA_URL.'/file/'.$bo_table.'/wPaint-' . $id . '.png"}';

1926198678_1661820678.7129.png

너무 자세한 설명 감사드립니다!

하지만, write.skin.php 상단부분은
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$id = uniqid();
$image_prefix = date('Ymdms').$id.".png";
$upload_path =  $board_skin_url."/upload.php?bo_table=".$bo_table."&save_prefix=".$image_prefix;

이렇게 하고

upload 전체는
<?php
include_once("./_common.php");
$image = imagecreatefrompng($_POST['image']);
//$id = uniqid();
imagealphablending($image, false);
imagesavealpha($image, true);


save_file = G5_DATA_PATH.'/file/'.$bo_table.'/' . $save_prefix;
imagepng($image, $save_file);
// return image path
echo '{"img": "'.G5_DATA_URL.'/file/'.$bo_table.'/wPaint-' . $id . '.png"}';

?>


라고 설정을 했는데도 안되는 이유가 무엇일까요? ㅠㅠ 너무 자세한설명까지 해주셨는데 제가 너무 부족한가 봅니다

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

회원로그인

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