function ad_edit_act() { $id = IFilter::act(IReq::get('id'), 'int'); $adObj = new IModel('ad_manage'); $error_message = null; //获取content数据 $type = IReq::get('type', 'post'); $content = IReq::get('content', 'post'); $upObj = null; switch ($type) { case "1": //图片上传 $upObj = new IUpload(); $attach = 'img'; break; case "2": //flash上传 $upObj = new IUpload('4048', array('flv', 'swf')); $attach = 'flash'; break; case "3": //文字 $content = IReq::get('text', 'post'); break; case "4": //代码 $content = IReq::get('code', 'post'); break; } if ($upObj != null) { //目录散列 $dir = IWeb::$app->config['upload'] . '/' . date('Y') . "/" . date('m') . "/" . date('d'); $upObj->setDir($dir); $upState = $upObj->execute(); if (!isset($upState[$attach])) { if ($content == '') { $error_message = '没有上传文件'; } } else { if ($upState[$attach][0]['flag'] == 1) { $content = $dir . '/' . $upState[$attach][0]['name']; } else { $error_message = IUpload::errorMessage($upState[$attach][0]['flag']); } } } else { if ($content == '') { $error_message = '请填写广告展示类型的内容'; } } $dataArray = array('content' => IFilter::addSlash($content), 'name' => IFilter::act(IReq::get('name')), 'position_id' => IFilter::act(IReq::get('position_id')), 'type' => IFilter::act(IReq::get('type')), 'link' => IFilter::addSlash(IReq::get('link')), 'start_time' => IFilter::act(IReq::get('start_time')), 'end_time' => IFilter::act(IReq::get('end_time')), 'description' => IFilter::act(IReq::get('description'), 'text'), 'order' => IFilter::act(IReq::get('order'), 'int'), 'goods_cat_id' => IFilter::act(IReq::get('goods_cat_id'), 'int')); //上传错误 if ($error_message != null) { if ($id) { $dataArray['id'] = $id; } $this->adRow = $dataArray; $this->redirect('ad_edit', false); Util::showMessage($error_message); } $adObj->setData($dataArray); if ($id) { $where = 'id = ' . $id; $adObj->update($where); } else { $adObj->add(); } $this->redirect("ad_list"); }
/** * @brief 开始运行 */ public static function run() { set_time_limit(0); ini_set("max_execution_time", 0); $csvType = IReq::get('csvType'); $category = IFilter::act(IReq::get('category'), 'int'); $pluginDir = IWeb::$app->getBasePath() . 'plugins/csvPacketHelper/'; if (!file_exists($pluginDir)) { die('此功能仅供授权版本使用,请您购买商业授权'); } if (!class_exists('ZipArchive')) { die('服务器环境中没有安装zip扩展,无法使用此功能'); } if (extension_loaded('mbstring') == false) { die('服务器环境中没有安装mbstring扩展,无法使用此功能'); } //处理上传 $uploadInstance = new IUpload(9999999, array('zip')); $uploadCsvDir = 'runtime/cvs/' . date('YmdHis'); $uploadInstance->setDir($uploadCsvDir); $result = $uploadInstance->execute(); if (!isset($result['csvPacket'])) { die('请上传指定大小的csv数据包'); } if (($packetData = current($result['csvPacket'])) && $packetData['flag'] != 1) { $message = $uploadInstance->errorMessage($packetData['flag']); die($message); } $zipPath = $packetData['fileSrc']; $zipDir = dirname($zipPath); $imageDir = IWeb::$app->config['upload'] . '/' . date('Y/m/d'); file_exists($imageDir) ? '' : IFile::mkdir($imageDir); //解压缩包 $zipObject = new ZipArchive(); $zipObject->open($zipPath); $isExtract = $zipObject->extractTo($zipDir); $zipObject->close(); if ($isExtract == false) { $message = '解压缩到目录' . $zipDir . '失败!'; die($message); } //实例化商品 $goodsObject = new IModel('goods'); $photoRelationDB = new IModel('goods_photo_relation'); $photoDB = new IModel('goods_photo'); $cateExtendDB = new IModel('category_extend'); //获得配置文件中的数据 $config = new Config("site_config"); $dirHandle = opendir($zipDir); while ($fileName = readdir($dirHandle)) { if (strpos($fileName, '.csv') !== false) { //创建解析对象 switch ($csvType) { case "taobao": include_once $pluginDir . 'taoBaoPacketHelper.php'; $helperInstance = new taoBaoPacketHelper($zipDir . '/' . $fileName, $imageDir); $titleToCols = taoBaoTitleToColsMapping::$mapping; break; default: $message = "请选择csv数据包的格式"; die($message); } //从csv中解析数据 $collectData = $helperInstance->collect(); //插入商品表 foreach ($collectData as $key => $val) { $collectImage = isset($val[$titleToCols['img']]) ? $val[$titleToCols['img']] : ''; //有图片处理 if ($collectImage) { //图片拷贝 $_FILES = array(); foreach ($collectImage as $image) { foreach ($image as $from => $to) { if (!is_file($from)) { continue; } IFile::xcopy($from, $to); //构造$_FILES全局数组 $_FILES[] = array('size' => 100, 'tmp_name' => $to, 'name' => basename($to), 'error' => 0); } } //调用文件上传类 $photoObj = new PhotoUpload(); $uploadImg = $photoObj->run(true); $showImg = current($uploadImg); } //处理商品详情图片 $toDir = IUrl::creatUrl() . dirname($to); $goodsContent = preg_replace("|src=\".*?(?=/contentPic/)|", "src=\"{$toDir}", trim($val[$titleToCols['content']], "'\"")); $insertData = array('name' => IFilter::act(trim($val[$titleToCols['name']], '"\'')), 'goods_no' => goods_class::createGoodsNo(), 'sell_price' => IFilter::act($val[$titleToCols['sell_price']], 'float'), 'market_price' => IFilter::act($val[$titleToCols['sell_price']], 'float'), 'up_time' => ITime::getDateTime(), 'create_time' => ITime::getDateTime(), 'store_nums' => IFilter::act($val[$titleToCols['store_nums']], 'int'), 'content' => IFilter::addSlash($goodsContent), 'img' => isset($showImg['img']) ? $showImg['img'] : '', 'seller_id' => self::$seller_id); $goodsObject->setData($insertData); $goods_id = $goodsObject->add(); //处理商品分类 if ($category) { foreach ($category as $catId) { $cateExtendDB->setData(array('goods_id' => $goods_id, 'category_id' => $catId)); $cateExtendDB->add(); } } //处理商品图片 if ($uploadImg) { $imgArray = array(); foreach ($uploadImg as $temp) { if (isset($temp['img']) && $temp['img']) { $imgArray[] = $temp['img']; } } if ($imgArray) { $photoData = $photoDB->query('img in ("' . join('","', $imgArray) . '")', 'id'); if ($photoData) { foreach ($photoData as $item) { $photoRelationDB->setData(array('goods_id' => $goods_id, 'photo_id' => $item['id'])); $photoRelationDB->add(); } } } } } } } //清理csv文件数据 IFile::rmdir($uploadCsvDir, true); die('<script type="text/javascript">parent.artDialogCallback();</script>'); }