영카트 상품등록시 이미지 등록안되는 현상. > 그누4 질문답변

그누4 질문답변

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

영카트 상품등록시 이미지 등록안되는 현상. 정보

영카트 상품등록시 이미지 등록안되는 현상.

본문

어제문의드렸었는데요..
영카트에서 쇼핑몰상품등록시. 디비에 상품명/가격/내용등 모두 들어가는데

이미지명(디비)과 이미지파일(폴더)만 등록이 안됩니다.
아래는 등록소스부분입니다.
함봐주시면 감사하겠습니다.ㅜ_ㅜ


<?
include_once("./_common.php");

//이미지 업로드
function image_upload($img, $img_size, $img_name, $size, $img_url){
if($img_size > 0) {
$file_ext = strtolower(substr($img_name,-3));
${$img."_micro"} = microtime().".".$file_ext;
$dest = $img_url.${$img."_micro"};
@copy($img,$dest);
@unlink($img);

//썸네일 사이즈 입력시 썸네일 생성
if($size > 0){
${$img."_micro_thumb"} = imgThumbo($img_url.${$img."_micro"}, "sub_".${$img."_micro"}, $size, $img_url);
}

return array(${$img."_micro"},${$img."_micro_thumb"}[1]); //변환명(마이크로),썸네일
}

}


////////////////////////////////////////////////////////////////////////////////////////////////// 썸네일 생성
////////////////////////////////////////////////////////////////////////////////////////////////
function imgThumbo($filePath, $saveName, $sFactor, $saveDir = "./", $destroy="1") {
  $sz = @getimagesize($filePath); // 이미지 사이즈구함
  if($sz[0]  > $sFactor || $sz[1] > $sFactor){
    if($sz[0]>$sz[1]) $per=$sFactor/$sz[0];
    else $per=$sFactor/$sz[1];
    $imgW=ceil($sz[0]*$per);
    $imgH=ceil($sz[1]*$per);
  }
  else {
    $imgW=ceil($sz[0]);//width 값
    $imgH=ceil($sz[1]);//height 값
  }

  switch ($sz[2]) {
    case 1:
      $src_img = imagecreatefromgif($filePath);
      $dst_img = imagecreatetruecolor($imgW, $imgH);
      imagecopyresampled($dst_img,$src_img,0,0,0,0,$imgW,$imgH,$sz[0],$sz[1]);
      ImageInterlace($dst_img);
      ImageGIF($dst_img, $saveDir.$saveName);
      break;
    case 2:
      $src_img = imagecreatefromjpeg($filePath);
      $dst_img = imagecreatetruecolor($imgW, $imgH);
      imagecopyresampled($dst_img,$src_img,0,0,0,0,$imgW,$imgH,$sz[0],$sz[1]);
      ImageInterlace($dst_img);
      ImageJPEG($dst_img, $saveDir.$saveName,90);
      break;
    case 3:
      $src_img = imagecreatefrompng($filePath);
      $dst_img = imagecreatetruecolor($imgW, $imgH);
      imagecopyresampled($dst_img,$src_img,0,0,0,0,$imgW,$imgH,$sz[0],$sz[1]);
      ImageInterlace($dst_img);
      ImagePNG($dst_img, $saveDir.$saveName);
      break;
    default:
      return false;
      break;
  }
  return $saveAll = array($saveDir, $saveName, $imgW, $imgH);
  if($destroy){
    ImageDestroy($dst_img);
    ImageDestroy($src_img);
  }
}

if($mode == "write"){




$save_dir = $_SERVER['DOCUMENT_ROOT']."/gnuboard4/adm/shop_admin/upload/";


//이미지
for($i=1;$i<=4;$i++){
if(${"prd_img".$i."_size"} > 0) {
//이미지, 사이즈, 이름, 썸네일크기, 업로드될 경로 (반환되는 값 : 원본사이즈 - 마이크로 네임[0], 썸네일- sub_마이크로[1])
${"prd_img".$i} = image_upload(${"prd_img".$i}, ${"prd_img".$i."_size"}, ${"prd_img".$i."_name"}, 120, $save_dir);
${"prd_img".$i} = ${"prd_img".$i}[0];
${"prd_img".$i."_thum"} = "sub_".${"prd_img".$i};
}
}


$sql_no = "SELECT * FROM shop_product order by prd_sort desc limit 1";
$row = sql_fetch($sql_no);

if($row) {
$prd_sort = $row[prd_sort] + 1; 
}else {
$prd_sort = 1; 
}


//판매시기
$prd_month_text = "";

for($i=0;$i<13;$i++){
if($chk_mon[$i] != ""){
if($prd_month_text == ""){
$prd_month_text = $chk_mon[$i];
}else{
$prd_month_text .= "|".$chk_mon[$i];
}
}
}

$prd_type_text = "";

for($i=0;$i<3;$i++){
if($prd_type[$i] != ""){
if($prd_type_text == ""){
$prd_type_text = $prd_type[$i];
}else{
$prd_type_text .= "|".$prd_type[$i];
}
}
}


$prd_shPhone = $tel1."-".$tel2."-".$tel3;
$prd_redDate = mktime();
$prd_shMail = $prd_shMail1."@".$prd_shMail2;

$sql = "INSERT INTO shop_product VALUES(
'',
'',
'',
'',
'$prd_month_text',
'$prd_sort',
'$prd_name',
'$prd_type_text',
'$prd_com',
'$prd_native',
'$prd_oPrice',
'$prd_sPrice',
'$prd_dPrice',
'$prd_num',
'$prd_exp',
'$prd_info',
'$prd_info_html',
'$prd_trade',
'$prd_trade_html',
'$prd_shName',
'$prd_shMail',
'$prd_shPhone',
'$prd_img1',
'$prd_img1_name',
'$prd_img1_thum',
'$prd_img2',
'$prd_img2_name',
'$prd_img2_thum',
'$prd_img3',
'$prd_img3_name',
'$prd_img3_thum',
'$prd_img4',
'$prd_img4_name',
'$prd_img4_thum',
'$prd_point',
'$prd_point_use',
'$prd_click',
'$prd_click_re',
'$prd_recomm',
'$prd_recomm_re',
'$prd_show',
'$prd_temp1',
'$prd_temp2',
'$prd_temp3',
'$prd_temp4',
'$prd_temp5',
'Y',
'$prd_redDate',
'$prd_upDate'
)
";

$result = sql_query($sql);

if($result != ""){
$message =  "등록되었습니다.";
}else{
$message =  "오류가 발생하였습니다.";
}
?>
<script>
alert("<?= $message ?>");
category1 = '<?= $cate1 ?>';
location.href="./shop_prdList.php";
parent.cate3.location.reload();
</script>
<?

}else if($mode == "modify"){


$save_dir = $_SERVER['DOCUMENT_ROOT']."/gnuboard4/adm/shop_admin/upload/";

$sql = " select * from shop_product WHERE prd_no='$no'";
$row = sql_fetch($sql);

//////////////////////////////////////////////////////////// 이미지 삭제
for($i=1;$i<5;$i++){
if(${"img_del".$i} != ""){
$img = "prd_img".$i;
$img_thum = "prd_img".$i."_thum";
$img_name = "prd_img".$i."_name";

@unlink($save_dir.$row[$img]);
@unlink($save_dir.$row[$img_thum]);

$sql_img = "UPDATE shop_product SET $img ='',$img_thum ='',$img_name='' WHERE prd_no = '$no'";
$result = sql_query($sql_img);
}

}

/////////////////////////////////////////////////////////// 이미지 업로드
for($i=1; $i<5; $i++){

//원본
if(${"prd_img".$i."_size"} > 0) {

if($row["prd_img".$i]){
@unlink($save_dir.$row["prd_img".$i]);
@unlink($save_dir.$row["prd_img".$i."_thum"]);
}

//이미지, 사이즈, 이름, 썸네일크기, 업로드될 경로 (반환되는 값 : 원본사이즈 - 마이크로 네임[0], 썸네일- sub_마이크로[1])
${"prd_img".$i} = image_upload(${"prd_img".$i}, ${"prd_img".$i."_size"}, ${"prd_img".$i."_name"}, 120, $save_dir);
${"prd_img".$i} = ${"prd_img".$i}[0];
${"prd_img".$i."_thum"} = "sub_".${"prd_img".$i};

$sql_img = "
update
shop_product
set
prd_img".$i." = '".${'prd_img'.$i}."',
prd_img".$i."_name = '".${'prd_img'.$i.'_name'}."',
prd_img".$i."_thum = '".${'prd_img'.$i."_thum"}."'
where
prd_no='$no'
";
$result = sql_query($sql_img);

}
}


//판매시기
$prd_month_text = "";

for($i=0;$i<13;$i++){
if($chk_mon[$i] != ""){
if($prd_month_text == ""){
$prd_month_text = $chk_mon[$i];
}else{
$prd_month_text .= "|".$chk_mon[$i];
}
}
}

$prd_type_text = "";
for($i=0;$i<3;$i++){

if($prd_type[$i] != ""){
if($prd_type_text == ""){
$prd_type_text = $prd_type[$i];
}else{
$prd_type_text .= "|".$prd_type[$i];
}
}
}

$prd_shPhone = $tel1."-".$tel2."-".$tel3;
$prd_shMail = $prd_shMail1."@".$prd_shMail2;
$prd_upDate = mktime();

$sql = "UPDATE shop_product
SET
prd_month = '$prd_month_text',
prd_name = '$prd_name',
prd_type = '$prd_type_text',
prd_com = '$prd_com',
prd_native = '$prd_native',
prd_oPrice = '$prd_oPrice',
prd_sPrice = '$prd_sPrice',
prd_dPrice = '$prd_dPrice',
prd_num = '$prd_num',
prd_exp = '$prd_exp',
prd_info = '$prd_info',
prd_info_html = '$prd_info_html',
prd_trade = '$prd_trade',
prd_trade_html = '$prd_trade_html',
prd_shName = '$prd_shName',
prd_shMail = '$prd_shMail',
prd_shPhone = '$prd_shPhone',
prd_point = '$prd_point',
prd_point_use = '$prd_point_use',
prd_click = '$prd_click',
prd_recomm = '$prd_recomm',
prd_show = '$prd_show',
prd_upDate = '$prd_upDate'
WHERE
prd_no = '$no'
";

$result = sql_query($sql);

if($result != ""){
$message =  "수정되었습니다.";
}else{
$message =  "오류가 발생하였습니다.";
}


?>
<script>
alert("<?= $message ?>");
no = '<?= $no ?>';
page = '<?= $page ?>';
k_cate1 = '<?= $k_cate1 ?>';
k_cate2 = '<?= $k_cate2 ?>';
k_cate3 = '<?= $k_cate3 ?>';
location.href="./shop_prdView.php?no="+no+"&page="+page+"&k_cate1="+k_cate1+"&k_cate2="+k_cate2+"&k_cate3="+k_cate3;
</script>
<?



}else if($mode == "delete"){


$save_dir = $_SERVER['DOCUMENT_ROOT']."/gnuboard4/adm/shop_admin/upload/";

$sql = " select * from shop_product WHERE prd_no='$no'";
$row = sql_fetch($sql);

//////////////////////////////////////////////////////////// 이미지 삭제
for($i=1;$i<5;$i++){
$img = "prd_img".$i;
$img_thum = "prd_img".$i."_thum";
$img_name = "prd_img".$i."_name";

@unlink($save_dir.$row[$img]);
@unlink($save_dir.$row[$img_thum]);

}


$sql = "UPDATE shop_product SET prd_chk='N' WHERE prd_no='$no'";
$result = sql_query($sql);

if($result != ""){
$message =  "삭제되었습니다.";
}else{
$message =  "오류가 발생하였습니다.";
}


?>
<script>
alert("<?= $message ?>");
page = '<?= $page ?>';
location.href="./shop_prdList.php?page="+page;
</script>
<?
}else if($mode == "sel_delete"){
$save_dir = $_SERVER['DOCUMENT_ROOT']."/gnuboard4/adm/shop_admin/upload/";
$no = explode("/",$del_no);

for($i=0;$i<sizeof($no);$i++){

$sql = " select * from shop_product WHERE prd_no='$no[$i]'";
$row = sql_fetch($sql);

//////////////////////////////////////////////////////////// 이미지 삭제
for($j=1;$j<5;$j++){
$img = "prd_img".$j;
$img_thum = "prd_img".$j."_thum";
$img_name = "prd_img".$j."_name";

@unlink($save_dir.$row[$img]);
@unlink($save_dir.$row[$img_thum]);

}


$sql = "UPDATE shop_product SET prd_chk='N' WHERE prd_no='$no[$i]'";
$result = sql_query($sql);

if($result != ""){
$message =  "삭제되었습니다.";
}else{
$message =  "오류가 발생하였습니다.";
}
}
?>
<script>
alert("<?= $message ?>");
page = '<?= $page ?>';
location.href="./shop_prdList.php?page="+page;
</script>
<?
}
?>

댓글 전체

등록소스보다는 
업로드파일이 정상적으로 서버에 업로드되는지 서버용량은 충분한지 파일명이 깨진채로 인서트되지는 않는지 이미지용량이 서버설정보다 넘크진않은지 부터  확인할것을 권장합니다
서버용량은 충분하구요, 게시판이나 갤러리에 이미지등록은 잘됩니다. 업로드파일이 정상적으로 서버에 업로드 안되니 소스 올린거구요..
나머지내용은 디비에 잘들어가는데 제가 asp만 다뤄봐서, 아무리 소스를 봐도,, 다른사이트에 달았을때는 잘되는데 여기선 안되서 뭐가 문제인가 보고 어느부분이 잘못된부분이있는지 봐달라는거였습니다..ㅜㅜㅜ..(폴더권한도 707 줬구요.)
영카트 상품 업로드 부분이 아닌거 같네요
아마도 변형을 해서 쓰시는거 같고요
어제 말씀드렸다 시피
서버에 정상적으로 업로드 안되는건 반드시 오류 메시지를 뿌리기 때문에
@ 를 빼달라고 했던거고요

올려주신
//이미지 업로드
function image_upload($img, $img_size, $img_name, $size, $img_url){
if($img_size > 0) {
$file_ext = strtolower(substr($img_name,-3));
${$img."_micro"} = microtime().".".$file_ext;
$dest = $img_url.${$img."_micro"};
@copy($img,$dest);
@unlink($img);

//썸네일 사이즈 입력시 썸네일 생성
if($size > 0){
${$img."_micro_thumb"} = imgThumbo($img_url.${$img."_micro"}, "sub_".${$img."_micro"}, $size, $img_url);
 }

return array(${$img."_micro"},${$img."_micro_thumb"}[1]); //변환명(마이크로),썸네일
}

}
이부분에서

@copy($img,$dest);
=>
copy($img,$dest);

이렇게 바꾸셔서 오류가 나는것을 확인해보셔야합니다
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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