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; }
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]); }
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([], "操作成功!!"); }
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); } }
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")]); }
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([], "上传成功!"); }
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; }