채택완료

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

2022-08-30 (화) 01:34:50 2,632

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 에서

Copy
$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;

을

Copy
<?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 에서

Copy
$save_file = '../../../data/file/'.$bo_table.'/' . $save_prefix;

imagepng($image, $save_file);


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

?>

을

Copy
$bo_table = $_GET['bo_table'];
@mkdir(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개 / 댓글 6개

채택된 답변
+20 포인트

write_update.skin.php

Copy
<?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/으로 바꿔야 됩니다.

답변에 대한 댓글 3개

엄청 설레면서 바로 해보았지만.. 아직 되지않네요 혹시나 다른 부분 건드렸나 해서 skin 다시 설치하고 해도 안되군요...
ㅠㅠ 들레아빠님은 뚝딱 성공하시는데 왜 제거는 안되는지 도무지 이해가 안되네요 죄송합니다.. ㅠㅠ
혹시 그누보드 버젼이 높아서 그런것일까요?? 그누보드를 저 당시버젼으로 설치하면 가능할까요???
그누보드 버젼 Version 5.5.8.2 PHP Version 8.1.6입니다.
낮은 곳에서 해보고 알려 드릴게요.

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

채택 감사 드립니다.

<?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;
=>

Copy
<?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'];
@mkdir(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"}';
?>
=>

Copy
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

답변에 대한 댓글 1개

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

하지만, 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"}';

?>


라고 설정을 했는데도 안되는 이유가 무엇일까요? ㅠㅠ 너무 자세한설명까지 해주셨는데 제가 너무 부족한가 봅니다
2022-08-30 (화) 08:18:14

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

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

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

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

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

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

이게 이상하네요

답변에 대한 댓글 2개

넵.. 그래서 이걸 원상복구도 해보고, (.png)로 해봐도 안되네요 ㅠㅠ 무엇인 문제일까요 ㅠㅠ
.png 라는 문장 자채가 오류입니다.
변수도 아니고, 문자인데
오류발생으로 진행이 안되어야 정상인데
무시하고 진행되는게 되려 더 이상한것같구요

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

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