겔러리 게시판에 글등록시 대량등록하는법 없나요?ㅠ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

겔러리 게시판에 글등록시 대량등록하는법 없나요?ㅠ 정보

겔러리 게시판에 글등록시 대량등록하는법 없나요?ㅠ

본문

겔러리 스킨써서 사용하고있는데요
글 1개당 썸네일1개씩표현이되자나요

글1개에 이미지 2~3개등록이 아닌

이미지겔러리에 이미지 30개를쭉클릭해서 넣으면

이미지 1개당 겔러리 게시판에 1개씩 이미지가 들어가지는 방법은없나요?

댓글 전체

<?php
###/lib/parse.php    파일로 함.


set_time_limit(0);
header("Content-type:text/html;charset=utf-8");


include_once './_common.php';
include_once $g4['path'].'/lib/parse.lib.php';

//입력할 테이블
$bo_table = '';

//데이터를 파싱할 디렉토리
$dir= $g4['path'].'/data/img/leejiu';


//zip 에서 압축을 푼것인지.. 압축 푼것은 이상하게 작동함.
$is_zip = false;


@chmod("$g4[path]/data/file/$bo_table", 0707);

echo 'starting parse files in dir : '.$dir.'....<br>';

parse_dir($bo_table, $dir, $g4, '');

echo 'ended parse files in dir  : .'.$dir.'...<br>';

function parse_dir($bo_table, $dir, $g4, $dir_name='')
{

global $is_zip;

$df = opendir($dir);

if($df){
while(( $file =readdir($df)) == true){

$file = trim($file);

echo $file.'<br>';




if($file == false || $file=='.' || $file == '..')
continue;

if(preg_match('/[.]db/i', $file)) continue;

//파일일 경우
if(is_file($dir.'/'.$file) && @getimagesize($dir.'/'.$file) == true)
{
$tmp_name = urldecode($file);
if(iconv('euc-kr', 'utf-8', $tmp_name) != $tmp_name )
$filename = iconv('euc-kr', 'utf-8', $tmp_name);
else
$filename = $file;
$filename = $file;

$tmp_file = $dir.'/'.$file;

$write_table = $g4['write_prefix'].$bo_table; // 게시판 테이블 전체이름

$filename = $dir_name ? $dir_name.' > '.$filename : $filename;
//$filename = preg_replace('/\/Set\s\d?\//i', '', $filename);

$timg = @getimagesize($tmp_file);
$upload[0]['image'] = $timg;
$upload[0]['source'] = mysql_real_escape_string($filename);
$upload[0]['filesize'] =filesize($tmp_file);
$upload[0]['file'] = get_unique_file($filename);
$upload[0]['content'] = mysql_real_escape_string($filename);
$upload[0]['subject'] = mysql_real_escape_string($filename);


$dest_file = $g4['path'].'/data/file/'.$bo_table.'/' . $upload[0]['file'];


copy($tmp_file, $dest_file);

chmod($dest_file, 0606);


$wr_id = insert_data($bo_table, $write_table,$upload, $g4);

if($wr_id)
insert_file($bo_table, $wr_id, $g4, $upload);

$result = $wr_id ? 'true' : 'false';

echo '[result] : '.$result.' -- moving file '.$tmp_file.' > '.$dest_file.'<br>' ;

}else if(is_dir($dir.'/'.$file))
{
if(iconv('euc-kr', 'utf-8', $file) != $file )
$filename = iconv('euc-kr', 'utf-8', $file);
else
$filename = $file;

$filename = $dir_name.' > '.$filename;



//디렉토리를 만들어 간다.
parse_dir($bo_table, $dir.'/'.$file, $g4, $filename);
}
}

closedir($df);
}else{
echo 'failed open dir : '.$dir.'<br>';
}





}




mysql_close();
?>
<?php
###/lib/parse.lib.php
//파일을 입력하는 부분
function insert_file($bo_table, $wr_id, $g4, $upload){
 
  for($i = 0, $j = count($upload);$i<$j;$i++) {
$sql = " insert into $g4[board_file_table]
set bo_table = '$bo_table',
wr_id = '$wr_id',
bf_no = '$i',
bf_source = '{$upload[$i][source]}',
bf_file = '{$upload[$i][file]}',
bf_content = '{$upload[$i][content]}',
bf_download = 0,
bf_filesize = '{$upload[$i][filesize]}',
bf_width = '{$upload[$i][image][0]}',
bf_height = '{$upload[$i][image][1]}',
bf_type = '{$upload[$i][image][2]}',
bf_datetime = '$g4[time_ymdhis]' ";
sql_query($sql);
}
}



//데이터를 입력하는 부분
function insert_data($bo_table, $write_table,$upload, $g4,$wr_subject='', $wr_link1 = ''){

$wr_num = get_next_num($write_table);

$member =array(
'mb_id'=>'gk1905',
);
$wr_name='BOB';
$wr_subject = $wr_subject ? $wr_subject : $upload[0]['subject'];
$wr_content = $wr_subject;
$wr_password= sql_password('비밀번호');
$wr_email = '메일주소';




$sql = " insert into $write_table
set wr_num = '$wr_num',
wr_reply = '0',
wr_comment = 0,
ca_name = '',
wr_option = '',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$member[mb_id]',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_last = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10' ";


sql_query($sql, false);

$wr_id = mysql_insert_id();

if($wr_id) {

// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

// 새글 INSERT
//sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

// 게시글 1 증가
sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$bo_table'");
}

return $wr_id;

}

//파일의 확장자를 구하는 함수
function get_extension($file){
return strtolower(substr(strrchr($file,"."),1));
}

function get_unique_file($file)
{
$ext = get_extension($file);

return 'nice_'.substr(microtime(),4,6).'_'.mt_rand(99999,999999).'.'.$ext;
}

//파일을 다운로드 하여, array() 형태로 파일을 리턴
//snoopy 클래스를 이용하여 파일을 다운로드 한다.
function download($ori_file, $bo_table, $img,$snoopy )
{
global $g4;
$data_dir = $g4['path'].'/data/file/'.$bo_table.'/';

$parsedUrl = parse_url($ori_file);

//$snoopy ->referer = $parsedUrl['scheme'].$parsedUrl['host'];


if($snoopy->fetch($ori_file)) {
$content =  $snoopy->results;
} else {
echo $snoopy->error;
return array();
}

echo $content;
exit;

$filename= get_unique_file($img);
$dest_file = $data_dir.$filename;

$newFile = @fopen($dest_file,"wb");
@fwrite($newFile,$content);
@fclose($newFile);


$upload = array();
$timg = @getimagesize($dest_file);
$upload['image'] = $timg;
$upload['source'] = mysql_real_escape_string($img);
$upload['filesize'] =filesize($dest_file);
$upload['file'] = $filename;
$upload['content'] = mysql_real_escape_string($img);
$upload['subject'] = mysql_real_escape_string($img);

return $upload;
}


//디비 입력이 실패했을 경우에, 다운 받은 파일을 삭제하는 로직
function delete_file($bo_table, $wr_id, $g4, $img_arr)
{
if($img_arr == false)
return;


$data_dir = $g4['path'].'/data/file/'.$bo_table.'/';

foreach($img_arr as $val)
{
if(is_file($data_dir.$val))
unlink($data_dir.$val);
}
}
?>
파일 3천개 씩 등록시킬려구 만든 소스 입니다.

다 되는데 파일이름이 34%32%3234 형태는 아직 수정안된 소스 입니다.

나중에 알았지만 rawurldecode() 해줘야 하더군요. 쩝.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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