겔러리 게시판에 글등록시 대량등록하는법 없나요?ㅠ 정보
겔러리 게시판에 글등록시 대량등록하는법 없나요?ㅠ본문
겔러리 스킨써서 사용하고있는데요
글 1개당 썸네일1개씩표현이되자나요
글1개에 이미지 2~3개등록이 아닌
이미지겔러리에 이미지 30개를쭉클릭해서 넣으면
이미지 1개당 겔러리 게시판에 1개씩 이미지가 들어가지는 방법은없나요?
글 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();
?>
###/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);
}
}
?>
###/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() 해줘야 하더군요. 쩝.
다 되는데 파일이름이 34%32%3234 형태는 아직 수정안된 소스 입니다.
나중에 알았지만 rawurldecode() 해줘야 하더군요. 쩝.