run_replace 에서 $board, $w 가 들어가는 이유가 있을까요..?
본문
엑셀 + 파일첨부로 갤러리 게시판에 대량의 게시글을 등록하려고 하고 있습니다.
엑셀에서 데이터 들고와서 게시글 등록하는 부분은 문제가 없는데 업로드한 파일 순서대로 파일업로드도 동시에 진행중인데 run_replace 함수에 $board 와 $w 가 들어갑니다.
따로 파일을 만들어서 작동중인데 호출하면 $board, $w 가 빈값이라 에러가 있을까 해서 확인해보고자 합니다.
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once('../common.php');
set_time_limit ( 0 );
ini_set('memory_limit', '50M');
$is_upload_file = (isset($_FILES['excelfile']['tmp_name']) && $_FILES['excelfile']['tmp_name']) ? 1 : 0;
if ( !$is_upload_file ) {
alert("엑셀 파일을 업로드해 주세요.");
}
$is_file_excel = ($_FILES['excelfile']['type'] === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') ? 1 : 0;
if ( !$is_file_excel ) {
alert("xlsx 파일을 업로드해 주세요.");
}
$is_upload_images = (isset($_FILES['images']['tmp_name']) && $_FILES['images']['tmp_name']) ? 1 : 0;
if ( $is_upload_file && $is_file_excel ) {
$write_table = $g5['write_prefix'] . 'digital_archive';
$file = $_FILES['excelfile']['tmp_name'];
require_once "./Classes/PHPExcel/IOFactory.php"; // IOFactory.php을 불러옴.
$objPHPExcel = PHPExcel_IOFactory::load($file);
$sheet = $objPHPExcel->getSheet(0);
$num_rows = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$total_count = 0;
$fail_count = 0;
$succ_count = 0;
$file_count = 0;
$file_fail_count = 0;
for ($i = 2; $i <= $num_rows; $i++) {
$total_count++;
$rowData = $sheet->rangeToArray('A' . $i . ':' . $highestColumn . $i,
NULL,
TRUE,
FALSE);
$wr_num = get_next_num($write_table);
$wr_reply = '';
$wr_comment = 0;
$ca_name = addslashes($rowData[0][0]);
$wr_option = (addslashes($rowData[0][5]) == 'Y') ? 'secret' : '';
$wr_subject = '파일명으로?!';
$wr_content = '내용은 ?!';
$wr_seo_title = '서브타이틀?!';
$wr_link1 = '';
$wr_link2 = '';
$wr_link1_hit = 0;
$wr_link2_hit = 0;
$wr_hit = 0;
$wr_good = 0;
$wr_nogood = 0;
$mb_id = 'admin';
$wr_password = '';
$wr_name = '양평원';
$wr_email = '*** 개인정보보호를 위한 이메일주소 노출방지 ***';
$wr_homepage = '';
$wr_datetime = G5_TIME_YMDHIS;
$wr_last = G5_TIME_YMDHIS;
$wr_ip = $_SERVER['REMOTE_ADDR'];
$wr_1 = addslashes($rowData[0][1]);
$wr_2 = addslashes($rowData[0][2]);
$wr_3 = addslashes($rowData[0][3]);
$wr_4 = addslashes($rowData[0][4]);
$wr_5 = '';
$wr_6 = '';
$wr_7 = '';
$wr_8 = '';
$wr_9 = '';
$wr_10 = '';
$wr_tags1 = addslashes($rowData[0][6]);
$wr_tags2 = addslashes($rowData[0][7]);
if(!$wr_num || !$ca_name || !$wr_1 || !$wr_2 || !$wr_3 || !$wr_4) {
$fail_count++;
continue;
}
$sql = " insert into $write_table
set wr_num = '$wr_num',
wr_reply = '$wr_reply',
wr_comment = '$wr_comment',
ca_name = '$ca_name',
wr_option = '$wr_option',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_seo_title = '$wr_seo_title',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = '$wr_link1_hit',
wr_link2_hit = '$wr_link2_hit',
wr_hit = '$wr_hit',
wr_good = '$wr_good',
wr_nogood = '$wr_nogood',
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$wr_datetime',
wr_last = '$wr_last',
wr_ip = '$wr_ip',
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',
wr_tags1 = '$wr_tags1',
wr_tags2 = '$wr_tags2' ";
/* sql_query($sql);
$wr_id = sql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
// 새글 INSERT
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( 'digital_archive', '{$wr_id}', '{$wr_id}', '${wr_datetime}', '{$mb_id}' ) ");
// 게시글 1 증가
sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = 'digital_archive'"); */
if ( $is_upload_images ) {
if ( $_FILES['images']['tmp_name'][$succ_count] && is_uploaded_file($_FILES['images']['tmp_name'][$succ_count])) {
$chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));
$file_upload_msg = '';
$upload = array();
$upload[0]['file'] = '';
$upload[0]['source'] = '';
$upload[0]['filesize'] = 0;
$upload[0]['image'] = array();
$upload[0]['image'][0] = 0;
$upload[0]['image'][1] = 0;
$upload[0]['image'][2] = 0;
$upload[0]['fileurl'] = '';
$upload[0]['thumburl'] = '';
$upload[0]['storage'] = '';
$tmp_file = $_FILES['images']['tmp_name'][$succ_count];
$filesize = $_FILES['images']['size'][$succ_count];
$filename = $_FILES['images']['name'][$succ_count];
$filename = get_safe_filename($filename);
if (is_uploaded_file($tmp_file)) {
//=================================================================\
// 090714
// 이미지나 플래시 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$timg = @getimagesize($tmp_file);
// image type
if ( preg_match("/\.({$config['cf_image_extension']})$/i", $filename) ||
preg_match("/\.({$config['cf_flash_extension']})$/i", $filename) ) {
if ($timg['2'] < 1 || $timg['2'] > 18)
continue;
}
//=================================================================
$upload[0]['image'] = $timg;
// 프로그램 원래 파일명
$upload[0]['source'] = $filename;
$upload[0]['filesize'] = $filesize;
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar)/i", "$0-x", $filename);
shuffle($chars_array);
$shuffle = implode('', $chars_array);
$upload[0]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
$dest_file = G5_DATA_PATH.'/file/digital_archive/test/'.$upload[0]['file'];
// 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
$error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['images']['error'][$succ_count]);
// 올라간 파일의 퍼미션을 변경합니다.
chmod($dest_file, G5_FILE_PERMISSION);
$dest_file = run_replace('write_update_upload_file', $dest_file, $board, $wr_id, $w);
$upload[0] = run_replace('write_update_upload_array', $upload[0], $dest_file, $board, $wr_id, $w);
echo $dest_file.'<br/>';
/* $upload[0]['source'] = sql_real_escape_string($upload[0]['source']);
$bf_width = isset($upload[0]['image'][0]) ? (int) $upload[0]['image'][0] : 0;
$bf_height = isset($upload[0]['image'][1]) ? (int) $upload[0]['image'][1] : 0;
$bf_type = isset($upload[0]['image'][2]) ? (int) $upload[0]['image'][2] : 0;
$row = sql_fetch(" select count(*) as cnt from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' "); */
}
}
}
$succ_count++;
}
}
?>
지금은 해당 상태이며 한 게시글에 한개의 이미지만 첨부가능해서 게시글 등록 후 이미지 1개 업로드 후 wr_id 일치시키고 테이블 일치시키고 있습니다.
감사합니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.