您的位置:首页 > 运维架构

ecshop 后台增加上传图片项

2015-12-01 16:34 525 查看


最近在研究ecshop,想后台添加/修改商品的时候,增加一个自己上传图片的功能,看了一下,修改如下

(

还想在images/年月/下建立一个新的文件夹goods_new_img

准备:首先要先建立好goods_new_img,并且要有相关的权限

)

goods_info.html
<tr>
            <td class="label">{$lang.lab_picture}new</td>
            <td>
              <input type="file" name="goods_new_img" size="35" />
             
            </td>
          </tr>


goods.php

/*------------------------------------------------------ */

//-- 添加新商品 编辑商品

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'add' || $_REQUEST['act'] == 'edit' || $_REQUEST['act'] == 'copy'){

//这里面要改的东东,也就是复制商品里面的相应代码,自己看着改就是了

/* 如果是复制商品,处理 */

if ($_REQUEST['act'] == 'copy')

}

最主要的是修改下面的内容了,黑体加粗的就是修改或添加的内容了.(因为我的ecshop已经修改过了,所以行码可能不准,大家仔细分辨一下就清楚了).

/*------------------------------------------------------ */

//-- 插入商品 更新商品

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'insert' || $_REQUEST['act'] == 'update')

{

$code = empty($_REQUEST['extension_code']) ? '' : trim($_REQUEST['extension_code']);

/* 是否处理缩略图 */

$proc_thumb = (isset($GLOBALS['shop_id']) && $GLOBALS['shop_id'] > 0)? false : true;

if ($code == 'virtual_card')

{

admin_priv('virualcard'); // 检查权限

}

else

{

admin_priv('goods_manage'); // 检查权限

}

/* 检查货号是否重复 */

if ($_POST['goods_sn'])

{

$sql = "SELECT COUNT(*) FROM " . $ecs->table('goods') .

" WHERE goods_sn = '$_POST[goods_sn]' AND is_delete = 0 AND goods_id <> '$_POST[goods_id]'";

if ($db->getOne($sql) > 0)

{

sys_msg($_LANG['goods_sn_exists'], 1, array(), false);

}

}

/* (self)检查图片:如果有错误,检查尺寸是否超过最大值;否则,检查文件类型 */

if (isset($_FILES['goods_new_img']['error'])) // php 4.2 版本才支持 error

{

// 最大上传文件大小

$php_maxsize = ini_get('upload_max_filesize');

$htm_maxsize = '2M';

// 商品图片

if ($_FILES['goods_new_img']['error'] == 0)

{

if (!$image->check_img_type($_FILES['goods_new_img']['type']))

{

sys_msg($_LANG['invalid_goods_img'], 1, array(), false);

}

}

elseif ($_FILES['goods_new_img']['error'] == 1)

{

sys_msg(sprintf($_LANG['goods_img_too_big'], $php_maxsize), 1, array(), false);

}

elseif ($_FILES['goods_new_img']['error'] == 2)

{

sys_msg(sprintf($_LANG['goods_img_too_big'], $htm_maxsize), 1, array(), false);

}

}

/* 检查图片:如果有错误,检查尺寸是否超过最大值;否则,检查文件类型 */

if (isset($_FILES['goods_img']['error'])) // php 4.2 版本才支持 error

{

// 最大上传文件大小

$php_maxsize = ini_get('upload_max_filesize');

$htm_maxsize = '2M';

// 商品图片

if ($_FILES['goods_img']['error'] == 0)

{

if (!$image->check_img_type($_FILES['goods_img']['type']))

{

sys_msg($_LANG['invalid_goods_img'], 1, array(), false);

}

}

elseif ($_FILES['goods_img']['error'] == 1)

{

sys_msg(sprintf($_LANG['goods_img_too_big'], $php_maxsize), 1, array(), false);

}

elseif ($_FILES['goods_img']['error'] == 2)

{

sys_msg(sprintf($_LANG['goods_img_too_big'], $htm_maxsize), 1, array(), false);

}

// 商品缩略图

if (iss
4000
et($_FILES['goods_thumb']))

{

if ($_FILES['goods_thumb']['error'] == 0)

{

if (!$image->check_img_type($_FILES['goods_thumb']['type']))

{

sys_msg($_LANG['invalid_goods_thumb'], 1, array(), false);

}

}

elseif ($_FILES['goods_thumb']['error'] == 1)

{

sys_msg(sprintf($_LANG['goods_thumb_too_big'], $php_maxsize), 1, array(), false);

}

elseif ($_FILES['goods_thumb']['error'] == 2)

{

sys_msg(sprintf($_LANG['goods_thumb_too_big'], $htm_maxsize), 1, array(), false);

}

}

// 相册图片

foreach ($_FILES['img_url']['error'] AS $key => $value)

{

if ($value == 0)

{

if (!$image->check_img_type($_FILES['img_url']['type'][$key]))

{

sys_msg(sprintf($_LANG['invalid_img_url'], $key + 1), 1, array(), false);

}

}

elseif ($value == 1)

{

sys_msg(sprintf($_LANG['img_url_too_big'], $key + 1, $php_maxsize), 1, array(), false);

}

elseif ($_FILES['img_url']['error'] == 2)

{

sys_msg(sprintf($_LANG['img_url_too_big'], $key + 1, $htm_maxsize), 1, array(), false);

}

}

}

/* 4.1版本 */

else

{

// 商品图片

if ($_FILES['goods_img']['tmp_name'] != 'none')

{

if (!$image->check_img_type($_FILES['goods_img']['type']))

{

sys_msg($_LANG['invalid_goods_img'], 1, array(), false);

}

}

// 商品缩略图

if (isset($_FILES['goods_thumb']))

{

if ($_FILES['goods_thumb']['tmp_name'] != 'none')

{

if (!$image->check_img_type($_FILES['goods_thumb']['type']))

{

sys_msg($_LANG['invalid_goods_thumb'], 1, array(), false);

}

}

}

// 相册图片

foreach ($_FILES['img_url']['tmp_name'] AS $key => $value)

{

if ($value != 'none')

{

if (!$image->check_img_type($_FILES['img_url']['type'][$key]))

{

sys_msg(sprintf($_LANG['invalid_img_url'], $key + 1), 1, array(), false);

}

}

}

}

/* 插入还是更新的标识 */

$is_insert = $_REQUEST['act'] == 'insert';

/* 处理商品图片 */

$goods_img        = '';  // 初始化商品图片
  $goods_new_img        = '';  // 初始化商品图片2

$goods_thumb      = '';  // 初始化商品缩略图

$original_img     = '';  // 初始化原始图片

$old_original_img = '';  // 初始化原始图片旧图

   // 是否上传商品图片new

if (isset($_FILES['goods_new_img']) && $_FILES['goods_new_img']['tmp_name'] != '' &&

isset($_FILES['goods_new_img']['tmp_name']) &&$_FILES['goods_new_img']['tmp_name'] != 'none')

{

// 上传了,直接使用,原始大小

$goods_new_img = $image->upload_image($_FILES['goods_new_img']);

if ($goods_new_img === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

}

// 如果上传了商品图片,相应处理

if (($_FILES['goods_img']['tmp_name'] != '' && $_FILES['goods_img']['tmp_name'] != 'none') or (($_POST['goods_img_url'] != $_LANG['lab_picture_url'] && $_POST['goods_img_url'] != 'http://') && $is_url_goods_img = 1))

{

if ($_REQUEST['goods_id'] > 0)

{

/* 删除原来的图片文件 */

$sql = "SELECT goods_thumb, goods_img, original_img " .

" FROM " . $ecs->table('goods') .

" WHERE goods_id = '$_REQUEST[goods_id]'";

$row = $db->getRow($sql);

if ($row['goods_thumb'] != '' && is_file('../' . $row['goods_thumb']))

{

@unlink('../' . $row['goods_thumb']);

}

if ($row['goods_img'] != '' && is_file('../' . $row['goods_img']))

{

@unlink('../' . $row['goods_img']);

}

if ($row['original_img'] != '' && is_file('../' . $row['original_img']))

{

/* 先不处理,以防止程序中途出错停止 */

//$old_original_img = $row['original_img']; //记录旧图路径

}

/* 清除原来商品图片 */

if ($proc_thumb === false)

{

get_image_path($_REQUEST[goods_id], $row['goods_img'], false, 'goods', true);

get_image_path($_REQUEST[goods_id], $row['goods_thumb'], true, 'goods', true);

}

}

if (empty($is_url_goods_img))

{

$original_img   = $image->upload_image($_FILES['goods_img']); // 原始图片

}

elseif (copy(trim($_POST['goods_img_url']), ROOT_PATH . 'temp/' . basename($_POST['goods_img_url'])))

{

$original_img = 'temp/' . basename($_POST['goods_img_url']);

}

if ($original_img === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

$goods_img      = $original_img;   // 商品图片

/* 复制一份相册图片 */

/* 添加判断是否自动生成相册图片 */

if ($_CFG['auto_generate_gallery'])

{

$img        = $original_img;   // 相册图片

$pos        = strpos(basename($img), '.');

$newname    = dirname($img) . '/' . $image->random_filename() . substr(basename($img), $pos);

if (!copy('../' . $img, '../' . $newname))

{

sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);

}

$img        = $newname;

$gallery_img    = $img;

$gallery_thumb  = $img;

}

// 如果系统支持GD,缩放商品图片,且给商品图片和相册图片加水印

if ($proc_thumb && $image->gd_version() > 0 && $image->check_img_function($_FILES['goods_img']['type']) || $is_url_goods_img)

{

if (empty($is_url_goods_img))

{

// 如果设置大小不为0,缩放图片

if ($_CFG['image_width'] != 0 || $_CFG['image_height'] != 0)

{

$goods_img = $image->make_thumb('../'. $goods_img , $GLOBALS['_CFG']['image_width'],  $GLOBALS['_CFG']['image_height']);

if ($goods_img === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

}

/* 添加判断是否自动生成相册图片 */

if ($_CFG['auto_generate_gallery'])

{

$newname    = dirname($img) . '/' . $image->random_filename() . substr(basename($img), $pos);

if (!copy('../' . $img, '../' . $newname))

{

sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);

}

$gallery_img        = $newname;

}

// 加水印

if (intval($_CFG['watermark_place']) > 0 && !empty($GLOBALS['_CFG']['watermark']))

{

if ($image->add_watermark('../'.$goods_img,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

/* 添加判断是否自动生成相册图片 */

if ($_CFG['auto_generate_gallery'])

{

if ($image->add_watermark('../'. $gallery_img,'',$GLOBALS['_CFG']['watermark'], $GLOBALS['_CFG']['watermark_place'], $GLOBALS['_CFG']['watermark_alpha']) === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

}

}

}

// 相册缩略图

/* 添加判断是否自动生成相册图片 */

if ($_CFG['auto_generate_gallery'])

{

if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0)

{

$gallery_thumb = $image->make_thumb('../' . $img, $GLOBALS['_CFG']['thumb_width'],  $GLOBALS['_CFG']['thumb_height']);

if ($gallery_thumb === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

}

}

}

/* 取消该原图复制流程 */

// else

// {

//     /* 复制一份原图 */

//     $pos        = strpos(basename($img), '.');

//     $gallery_img = dirname($img) . '/' . $image->random_filename() . // substr(basename($img), $pos);

//     if (!copy('../' . $img, '../' . $gallery_img))

//     {

//         sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);

//     }

//     $gallery_thumb = '';

// }

}

// 是否上传商品缩略图

if (isset($_FILES['goods_thumb']) && $_FILES['goods_thumb']['tmp_name'] != '' &&

isset($_FILES['goods_thumb']['tmp_name']) &&$_FILES['goods_thumb']['tmp_name'] != 'none')

{

// 上传了,直接使用,原始大小

$goods_thumb = $image->upload_image($_FILES['goods_thumb']);

if ($goods_thumb === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

}

else

{

// 未上传,如果自动选择生成,且上传了商品图片,生成所略图

if ($proc_thumb && isset($_POST['auto_thumb']) && !empty($original_img))

{

// 如果设置缩略图大小不为0,生成缩略图

if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0)

{

$goods_thumb = $image->make_thumb('../' . $original_img, $GLOBALS['_CFG']['thumb_width'],  $GLOBALS['_CFG']['thumb_height']);

if ($goods_thumb === false)

{

sys_msg($image->error_msg(), 1, array(), false);

}

}

else

{

$goods_thumb = $original_img;

}

}

}

//     print_r(IMAGE_DIR);exit;

/* 删除下载的外链原图 */

if (!empty($is_url_goods_img))

{

unlink(ROOT_PATH . $original_img);

empty($newname) || unlink(ROOT_PATH . $newname);

$url_goods_img = $goods_img = $original_img = htmlspecialchars(trim($_POST['goods_img_url']));

}

/* 如果没有输入商品货号则自动生成一个商品货号 */

if (empty($_POST['goods_sn']))

{

$max_id     = $is_insert ? $db->getOne("SELECT MAX(goods_id) + 1 FROM ".$ecs->table('goods')) : $_REQUEST['goods_id'];

$goods_sn   = generate_goods_sn($max_id);

}

else

{

$goods_sn   = $_POST['goods_sn'];

}

/* 处理商品数据 */

$shop_price = !empty($_POST['shop_price']) ? $_POST['shop_price'] : 0;

$goods_freight = !empty($_POST['goods_freight']) ? $_POST['goods_freight'] : 0;

$sold_num = !empty($_POST['sold_num']) ? $_POST['sold_num'] : 0;

$market_price = !empty($_POST['market_price']) ? $_POST['market_price'] : 0;

$promote_price = !empty($_POST['promote_price']) ? floatval($_POST['promote_price'] ) : 0;

$is_promote = empty($promote_price) ? 0 : 1;

$promote_start_date = ($is_promote && !empty($_POST['promote_start_date'])) ? local_strtotime($_POST['promote_start_date']) : 0;

$promote_end_date = ($is_promote && !empty($_POST['promote_end_date'])) ? local_strtotime($_POST['promote_end_date']) : 0;
10492

$goods_weight = !empty($_POST['goods_weight']) ? $_POST['goods_weight'] * $_POST['weight_unit'] : 0;

$is_best = isset($_POST['is_best']) ? 1 : 0;

$is_new = isset($_POST['is_new']) ? 1 : 0;

$is_hot = isset($_POST['is_hot']) ? 1 : 0;

$is_on_sale = isset($_POST['is_on_sale']) ? 1 : 0;

$is_alone_sale = isset($_POST['is_alone_sale']) ? 1 : 0;

$is_shipping = isset($_POST['is_shipping']) ? 1 : 0;

$goods_number = isset($_POST['goods_number']) ? $_POST['goods_number'] : 0;

$warn_number = isset($_POST['warn_number']) ? $_POST['warn_number'] : 0;

$goods_type = isset($_POST['goods_type']) ? $_POST['goods_type'] : 0;

$give_integral = isset($_POST['give_integral']) ? intval($_POST['give_integral']) : '-1';

$rank_integral = isset($_POST['rank_integral']) ? intval($_POST['rank_integral']) : '-1';

$suppliers_id = isset($_POST['suppliers_id']) ? intval($_POST['suppliers_id']) : '0';

$goods_name_style = $_POST['goods_name_color'] . '+' . $_POST['goods_name_style'];

$catgory_id = empty($_POST['cat_id']) ? '' : intval($_POST['cat_id']);

$brand_id = empty($_POST['brand_id']) ? '' : intval($_POST['brand_id']);

$goods_thumb = (empty($goods_thumb) && !empty($_POST['goods_thumb_url']) && goods_parse_url($_POST['goods_thumb_url'])) ? htmlspecialchars(trim($_POST['goods_thumb_url'])) : $goods_thumb;

$goods_thumb = (empty($goods_thumb) && isset($_POST['auto_thumb']))? $goods_img : $goods_thumb;

/* 入库 */

if ($is_insert)

{

if ($code == '')

{

$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name,goods_seo_name, goods_name_style, goods_sn, " .

"cat_id, brand_id, shop_price,goods_freight,sold_num,market_price, is_promote, promote_price, " .

"promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, goods_new_img,keywords, goods_brief, " .

"seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " .

"is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, suppliers_id)" .

"VALUES ('$_POST[goods_name]','$_POST[goods_seo_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .

"'$brand_id', '$shop_price',' $goods_freight','$sold_num', '$market_price', '$is_promote','$promote_price', ".

"'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', '$goods_new_img',".

"'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".

" '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_on_sale', '$is_alone_sale', $is_shipping, ".

" '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral', '$suppliers_id')";

}

else

{

$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name,goods_seo_name, goods_name_style, goods_sn, " .

"cat_id, brand_id, shop_price,goods_freight,sold_num market_price, is_promote, promote_price, " .

"promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, goods_new_img,keywords, goods_brief, " .

"seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_real, " .

"is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral)" .

"VALUES ('$_POST[goods_name]','$_POST[goods_seo_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .

"'$brand_id', '$shop_price',' $goods_freight','$sold_num', '$market_price', '$is_promote','$promote_price', ".

"'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', '$goods_new_img',".

"'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".

" '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', 0, '$is_on_sale', '$is_alone_sale', $is_shipping, ".

" '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code', '$rank_integral')";

}

}

else

{

/* 如果有上传图片,删除原来的商品图 */

$sql = "SELECT goods_thumb, goods_img, original_img,goods_new_img  " .

" FROM " . $ecs->table('goods') .

" WHERE goods_id = '$_REQUEST[goods_id]'";

$row = $db->getRow($sql);

 /*(self)*/

if ($proc_thumb && $goods_img && $row['goods_new_img'] && !goods_parse_url($row['goods_new_img']))

{

@unlink(ROOT_PATH . $row['goods_new_img']);

}

if ($proc_thumb && $goods_new_img && $row['goods_img'] && !goods_parse_url($row['goods_img']))

{

@unlink(ROOT_PATH . $row['goods_img']);

@unlink(ROOT_PATH . $row['original_img']);

}

if ($proc_thumb && $goods_thumb && $row['goods_thumb'] && !goods_parse_url($row['goods_thumb']))

{

@unlink(ROOT_PATH . $row['goods_thumb']);

}

$sql = "UPDATE " . $ecs->table('goods') . " SET " .

"goods_name = '$_POST[goods_name]', " .

"goods_seo_name = '$_POST[goods_seo_name]', " .

"goods_name_style = '$goods_name_style', " .

"goods_sn = '$goods_sn', " .

"cat_id = '$catgory_id', " .

"brand_id = '$brand_id', " .

"shop_price = '$shop_price', " .

"goods_freight = '$goods_freight', " .

"sold_num = '$sold_num', " .

"market_price = '$market_price', " .

"is_promote = '$is_promote', " .

"promote_price = '$promote_price', " .

"promote_start_date = '$promote_start_date', " .

"suppliers_id = '$suppliers_id', " .

"promote_end_date = '$promote_end_date', ";

/* 如果有上传图片,需要更新数据库 */

//图片(self)

if ($goods_new_img)

{

$sql .= "goods_new_img = '$goods_new_img', ";

}

if ($goods_img)

{

$sql .= "goods_img = '$goods_img', original_img = '$original_img', ";

}

if ($goods_thumb)

{

$sql .= "goods_thumb = '$goods_thumb', ";

}

if ($code != '')

{

$sql .= "is_real=0, extension_code='$code', ";

}

$sql .= "keywords = '$_POST[keywords]', " .

"goods_brief = '$_POST[goods_brief]', " .

"seller_note = '$_POST[seller_note]', " .

"goods_weight = '$goods_weight'," .

"goods_number = '$goods_number', " .

"warn_number = '$warn_number', " .

"integral = '$_POST[integral]', " .

"give_integral = '$give_integral', " .

"rank_integral = '$rank_integral', " .

"is_best = '$is_best', " .

"is_new = '$is_new', " .

"is_hot = '$is_hot', " .

"is_on_sale = '$is_on_sale', " .

"is_alone_sale = '$is_alone_sale', " .

"is_shipping = '$is_shipping', " .

"goods_desc = '$_POST[goods_desc]', " .

"last_update = '". gmtime() ."', ".

"goods_type = '$goods_type' " .

"WHERE goods_id = '$_REQUEST[goods_id]' LIMIT 1";

}

//     print_r($sql);exit;

$db->query($sql);

/* 商品编号 */

$goods_id = $is_insert ? $db->insert_id() : $_REQUEST['goods_id'];

/* 记录日志 */

if ($is_insert)

{

admin_log($_POST['goods_name'], 'add', 'goods');

}

else

{

admin_log($_POST['goods_name'], 'edit', 'goods');

}

/* 处理属性 */

if ((isset($_POST['attr_id_list']) && isset($_POST['attr_value_list'])) || (empty($_POST['attr_id_list']) && empty($_POST['attr_value_list'])))

{

// 取得原有的属性值

$goods_attr_list = array();

$keywords_arr = explode(" ", $_POST['keywords']);

$keywords_arr = array_flip($keywords_arr);

if (isset($keywords_arr['']))

{

unset($keywords_arr['']);

}

$sql = "SELECT attr_id, attr_index FROM " . $ecs->table('attribute') . " WHERE cat_id = '$goods_type'";

$attr_res = $db->query($sql);

$attr_list = array();

while ($row = $db->fetchRow($attr_res))

{

$attr_list[$row['attr_id']] = $row['attr_index'];

}

$sql = "SELECT g.*, a.attr_type

FROM " . $ecs->table('goods_attr') . " AS g

LEFT JOIN " . $ecs->table('attribute') . " AS a

ON a.attr_id = g.attr_id

WHERE g.goods_id = '$goods_id'";

$res = $db->query($sql);

while ($row = $db->fetchRow($res))

{

$goods_attr_list[$row['attr_id']][$row['attr_value']] = array('sign' => 'delete', 'goods_attr_id' => $row['goods_attr_id']);

}

// 循环现有的,根据原有的做相应处理

if(isset($_POST['attr_id_list']))

{

foreach ($_POST['attr_id_list'] AS $key => $attr_id)

{

$attr_value = $_POST['attr_value_list'][$key];

$attr_price = $_POST['attr_price_list'][$key];

if (!empty($attr_value))

{

if (isset($goods_attr_list[$attr_id][$attr_value]))

{

// 如果原来有,标记为更新

$goods_attr_list[$attr_id][$attr_value]['sign'] = 'update';

$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;

}

else

{

// 如果原来没有,标记为新增

$goods_attr_list[$attr_id][$attr_value]['sign'] = 'insert';

$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;

}

$val_arr = explode(' ', $attr_value);

foreach ($val_arr AS $k => $v)

{

if (!isset($keywords_arr[$v]) && $attr_list[$attr_id] == "1")

{

$keywords_arr[$v] = $v;

}

}

}

}

}

$keywords = join(' ', array_flip($keywords_arr));

$sql = "UPDATE " .$ecs->table('goods'). " SET keywords = '$keywords' WHERE goods_id = '$goods_id' LIMIT 1";

$db->query($sql);

/* 插入、更新、删除数据 */

foreach ($goods_attr_list as $attr_id => $attr_value_list)

{

foreach ($attr_value_list as $attr_value => $info)

{

if ($info['sign'] == 'insert')

{

$sql = "INSERT INTO " .$ecs->table('goods_attr'). " (attr_id, goods_id, attr_value, attr_price)".

"VALUES ('$attr_id', '$goods_id', '$attr_value', '$info[attr_price]')";

}

elseif ($info['sign'] == 'update')

{

$sql = "UPDATE " .$ecs->table('goods_attr'). " SET attr_price = '$info[attr_price]' WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";

}

else

{

$sql = "DELETE FROM " .$ecs->table('goods_attr'). " WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";

}

$db->query($sql);

}

}

}

/* 处理会员价格 */

if (isset($_POST['user_rank']) && isset($_POST['user_price']))

{

handle_member_price($goods_id, $_POST['user_rank'], $_POST['user_price']);

}

/* 处理优惠价格 */

if (isset($_POST['volume_number']) && isset($_POST['volume_price']))

{

$temp_num = array_count_values($_POST['volume_number']);

foreach($temp_num as $v)

{

if ($v > 1)

{

sys_msg($_LANG['volume_number_continuous'], 1, array(), false);

break;

}

}

handle_volume_price($goods_id, $_POST['volume_number'], $_POST['volume_price']);

}

/* 处理扩展分类 */

if (isset($_POST['other_cat']))

{

handle_other_cat($goods_id, array_unique($_POST['other_cat']));

}

if ($is_insert)

{

/* 处理关联商品 */

handle_link_goods($goods_id);

/* 处理组合商品 */

handle_group_goods($goods_id);

/* 处理关联文章 */

handle_goods_article($goods_id);

}

/* 重新格式化图片名称 */

$original_img = reformat_image_name('goods', $goods_id, $original_img, 'source');

$goods_img = reformat_image_name('goods', $goods_id, $goods_img, 'goods');
 $goods_new_img = reformat_image_name('goods_new', $goods_id, $goods_new_img,  'goods_new');//新的图片

$goods_thumb = reformat_image_name('goods_thumb', $goods_id, $goods_thumb, 'thumb');

if ($goods_img !== false)

{

$db->query("UPDATE " . $ecs->table('goods') . " SET goods_img = '$goods_img' WHERE goods_id='$goods_id'");

}
//(self)

if ($goods_new_img !== false)

{

$db->query("UPDATE " . $ecs->table('goods') . " SET goods_new_img = '$goods_new_img' WHERE goods_id='$goods_id'");

}

if ($original_img !== false)

{

$db->query("UPDATE " . $ecs->table('goods') . " SET original_img = '$original_img' WHERE goods_id='$goods_id'");

}

if ($goods_thumb !== false)

{

$db->query("UPDATE " . $ecs->table('goods') . " SET goods_thumb = '$goods_thumb' WHERE goods_id='$goods_id'");

}

//下面的代码省略...

}
admin/includes/lib_goods.php

约1260行.

/**

* 格式化商品图片名称(按目录存储)

*

*/

function reformat_image_name($type, $goods_id, $source_img, $position='')

{

$rand_name = gmtime() . sprintf("%03d", mt_rand(1,999));

$img_ext = substr($source_img, strrpos($source_img, '.'));

$dir = 'images';

if (defined('IMAGE_DIR'))

{

$dir = IMAGE_DIR;

}

$sub_dir = date('Ym', gmtime());

if (!make_dir(ROOT_PATH.$dir.'/'.$sub_dir))

{

return false;

}

if (!make_dir(ROOT_PATH.$dir.'/'.$sub_dir.'/source_img'))

{

return false;

}

if (!make_dir(ROOT_PATH.$dir.'/'.$sub_dir.'/goods_img'))

{

return false;

}
 if (!make_dir(ROOT_PATH.$dir.'/'.$sub_dir.'/goods_new_img'))

{

return false;

}

if (!make_dir(ROOT_PATH.$dir.'/'.$sub_dir.'/thumb_img'))

{

return false;

}

switch($type)

{

case 'goods':

$img_name = $goods_id . '_G_' . $rand_name;

break;
case 'goods_new':

$img_name = $goods_id . '_thumb_M_' . $rand_name;

break;

case 'goods_thumb':

$img_name = $goods_id . '_thumb_G_' . $rand_name;

break;

case 'gallery':

$img_name = $goods_id . '_P_' . $rand_name;

break;

case 'gallery_thumb':

$img_name = $goods_id . '_thumb_P_' . $rand_name;

break;

}

if ($position == 'source')

{

if (move_image_file(ROOT_PATH.$source_img, ROOT_PATH.$dir.'/'.$sub_dir.'/source_img/'.$img_name.$img_ext))

{

return $dir.'/'.$sub_dir.'/source_img/'.$img_name.$img_ext;

}

}

elseif ($position == 'thumb')

{

if (move_image_file(ROOT_PATH.$source_img, ROOT_PATH.$dir.'/'.$sub_dir.'/thumb_img/'.$img_name.$img_ext))

{

return $dir.'/'.$sub_dir.'/thumb_img/'.$img_name.$img_ext;

}

}
 elseif ($position == 'goods_new')

{

if (move_image_file(ROOT_PATH.$source_img, ROOT_PATH.$dir.'/'.$sub_dir.'/goods_new_img/'.$img_name.$img_ext))

{

return $dir.'/'.$sub_dir.'/goods_new_img/'.$img_name.$img_ext;

}

}

else

{

if (move_image_file(ROOT_PATH.$source_img, ROOT_PATH.$dir.'/'.$sub_dir.'/goods_img/'.$img_name.$img_ext))

{

return $dir.'/'.$sub_dir.'/goods_img/'.$img_name.$img_ext;

}

}

return false;

}



转载请保留链接: ecshop
后台增加上传图片项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: