Example #1
0
 private function search($params = [])
 {
     $p = isset($params['p']) ? $params['p'] : 1;
     $offset = ($p - 1) * $this->page_size;
     $query = RichMedia::find()->where(['status' => 1, 'type' => 'image']);
     $rich_media_list = $query->orderBy("id desc")->offset($offset)->limit($this->page_size)->all();
     $data = [];
     if ($rich_media_list) {
         foreach ($rich_media_list as $_rich_info) {
             $data[] = ['id' => $_rich_info['id'], 'type' => $_rich_info['type'], 'src_url' => GlobalUrlService::buildPic1Static($_rich_info['src_url']), 'address' => $_rich_info['address'], 'switch' => \Yii::$app->params['switch']['cdn']['pic1']];
         }
     }
     return $data;
 }
Example #2
0
 public function actionMedia()
 {
     $p = intval($this->get("p", 1));
     $offset = ($p - 1) * $this->page_size;
     $query = RichMedia::find()->where(['status' => 1, 'type' => 'image']);
     $rich_media_list = $query->orderBy("id desc")->offset($offset)->limit($this->page_size)->all();
     $data = [];
     if ($rich_media_list) {
         foreach ($rich_media_list as $_rich_info) {
             $data[] = ['image_url' => GlobalUrlService::buildPic1Static($_rich_info['src_url']), 'title' => $_rich_info['address'] ? $_rich_info['address'] : ':('];
         }
     }
     return $this->renderJSON(['list' => $data]);
 }
Example #3
0
 public function actionEdit($id)
 {
     $id = intval($id);
     $address = trim($this->post("address", ""));
     if (!$id) {
         return $this->renderJSON([], "操作的多媒体可能不是你的吧!!", -1);
     }
     if (mb_strlen($address, "utf-8") < 1) {
         return $this->renderJSON([], "地址不能为空!!", -1);
     }
     $richmedia_info = RichMedia::findOne(["id" => $id]);
     if (!$richmedia_info) {
         return $this->renderJSON([], "操作的多媒体可能不是你的吧!!", -1);
     }
     $richmedia_info->address = $address;
     $richmedia_info->update(0);
     return $this->renderJSON([], "操作成功!!");
 }
Example #4
0
 public function actionAddress()
 {
     $rich_media_list = RichMedia::find()->orderBy("id asc")->all();
     if (!$rich_media_list) {
         return;
     }
     foreach ($rich_media_list as $_item) {
         if (!$_item['gps']) {
             continue;
         }
         $gps_info = @json_decode(strtolower($_item['gps']), true);
         if (!$gps_info) {
             continue;
         }
         $lat = $gps_info['latitude'];
         $lng = $gps_info['longitude'];
         $address = GeoService::baidugeocoding($lat, $lng);
         if (!$address) {
             continue;
         }
         $_item->address = $address;
         $_item->update(0);
     }
 }
Example #5
0
 public function actionIndex()
 {
     $this->setTitle("富媒体");
     $p = intval($this->get("p", 1));
     if (!$p) {
         $p = 1;
     }
     $data = [];
     $pagesize = 20;
     $offset = ($p - 1) * $pagesize;
     $query = RichMedia::find()->where(['status' => 1]);
     $total_count = $query->count();
     $rich_media_list = $query->orderBy("id desc")->offset($offset)->limit($pagesize)->all();
     if ($rich_media_list) {
         $domains = Yii::$app->params['domains'];
         foreach ($rich_media_list as $_rich_info) {
             $tmp_small_pic_url = GlobalUrlService::buildPic1Static($_rich_info['src_url'], ['h' => 400]);
             $tmp_big_pic_url = GlobalUrlService::buildPic1Static($_rich_info['src_url'], ['w' => 600]);
             $data[] = ['id' => $_rich_info['id'], 'type' => $_rich_info['type'], 'small_src_url' => $tmp_small_pic_url, 'big_src_url' => $tmp_big_pic_url, 'thumb_url' => $_rich_info['thumb_url'] ? $_rich_info['thumb_url'] : $domains['static'] . "/wx/video_cover.jpg", 'address' => $_rich_info['address']];
         }
     }
     $page_info = DataHelper::ipagination(["total_count" => $total_count, "page_size" => $pagesize, "page" => $p, "display" => 5]);
     return $this->render("index", ["data" => $data, "page_info" => $page_info, 'page_url' => Url::toRoute("/richmedia/index")]);
 }
Example #6
0
 private function uploadMedia()
 {
     $allow_file_type = ["image/jpg", "image/gif", "image/bmp", "image/jpeg", "image/png", "video/mp4"];
     //设置允许上传文件的类型
     if (!isset($_FILES['richmedia'])) {
         return $this->renderJSON([], '请选择文件!', -1);
     }
     $file_target = $_FILES['richmedia'];
     if ($file_target['error'] > 0) {
         switch ($file_target['error']) {
             case 1:
                 return $this->renderJSON([], '文件大小超过服务器限制', -1);
                 break;
             case 2:
                 return $this->renderJSON([], '文件太大!', -1);
                 break;
             case 3:
                 return $this->renderJSON([], '文件只加载了一部分!', -1);
                 break;
             case 4:
                 return $this->renderJSON([], '文件加载失败!', -1);
                 break;
         }
     }
     if (!is_uploaded_file($file_target['tmp_name'])) {
         return $this->renderJSON([], "非法上传文件!", -1);
     }
     $type = $file_target["type"];
     if (!in_array($type, $allow_file_type)) {
         return $this->renderJSON([], "只能上传图片!", -1);
     }
     $hash_url = md5(file_get_contents($file_target['tmp_name']));
     $has_in = RichMedia::findOne(['hash_url' => $hash_url]);
     if ($has_in) {
         return $this->renderJSON([], "上传成功!");
     }
     $ret_upload = UploadService::uploadByFile($file_target['name'], $file_target['tmp_name'], $hash_url);
     if (!$ret_upload) {
         return $this->renderJSON([], UploadService::getLastErrorMsg(), -1);
     }
     $exif_info = @exif_read_data($ret_upload['path'], 0, true);
     $exif_ifd0_info = isset($exif_info['IFD0']) ? $exif_info['IFD0'] : [];
     if ($exif_ifd0_info && isset($exif_ifd0_info['Orientation']) && $exif_ifd0_info['Orientation'] == 6) {
         $this->rotate($ret_upload['path']);
     }
     $date_now = date("Y-m-d H:i:s");
     $gps = trim($this->post("gps", ""));
     $tiff = trim($this->post("tiff", ""));
     $db_type = "image";
     if ($type == "video/mp4") {
         $db_type = "video";
     }
     $model_rich_media = new RichMedia();
     $model_rich_media->type = $db_type;
     $model_rich_media->src_url = $ret_upload['uri'];
     $model_rich_media->hash_url = $hash_url;
     $model_rich_media->thumb_url = "";
     $model_rich_media->gps = $gps;
     $model_rich_media->tiff = $tiff;
     $model_rich_media->status = 0;
     $model_rich_media->exif = json_encode($exif_info);
     $model_rich_media->updated_time = $date_now;
     $model_rich_media->created_time = $date_now;
     $model_rich_media->save(0);
     return $this->renderJSON([], "上传成功!");
 }
Example #7
0
 private function saveRichMedia($type, $src_url, $thumb_url = "")
 {
     if (!$src_url) {
         return true;
     }
     $hash_url = md5($src_url);
     $has_in = RichMedia::findOne(['hash_url' => $hash_url]);
     if ($has_in) {
         return true;
     }
     $date_now = date("Y-m-d H:i:s");
     $data = file_get_contents($src_url);
     if (!$data) {
         return false;
     }
     $file_type = "jpeg";
     switch ($type) {
         case "voice":
             $file_type = "mp3";
             break;
         case "video":
             $file_type = "mp4";
             break;
     }
     $filename = md5($data) . ".{$file_type}";
     $filepath = "/tmp/{$filename}";
     file_put_contents($filepath, $data);
     $ret_upload = UploadService::uploadByFile($filename, $filepath, $hash_url);
     if (!$ret_upload) {
         return false;
     }
     $exif_info = @exif_read_data($ret_upload['path'], 0, true);
     $model_rich_media = new RichMedia();
     $model_rich_media->type = $type;
     $model_rich_media->src_url = $ret_upload['uri'];
     $model_rich_media->hash_url = $hash_url;
     $model_rich_media->thumb_url = $thumb_url;
     $model_rich_media->status = 0;
     $model_rich_media->exif = json_encode($exif_info);
     $model_rich_media->updated_time = $date_now;
     $model_rich_media->created_time = $date_now;
     $model_rich_media->save(0);
     return true;
 }