'图片', 'video' => '视频', 'file' => '文件' ]; } //获取文件列表 public static function getList($type = '', $page = 1, $per = 20) { $limit = ($page - 1) * $per; if ($type != '') { if (!in_array($type, array_keys(self::getTypes()))) { return []; } $items = self::where('type', $type) ->order('id desc'); } else { $items = self::order('id desc'); } $items = $items->limit($limit, $per)->select()->toArray(); foreach ($items as &$item) { $item['sizeStr'] = sizeToStr($item['size']); } return $items; } //获取分页列表 public static function getListPage($type = '', $per = 20) { if ($type != '') { if (!in_array($type, array_keys(self::getTypes()))) { return []; } return self::where('type', $type) ->order('id desc') ->paginate([ 'list_rows' => $per, 'query' => [ 'type' => $type ] ], false); } else { return self::order('id desc') ->paginate([ 'list_rows' => $per ], false); } } //添加,$w_h图片尺寸大小,单位像素,只对type=img时有效 public static function add($file, $src, $md5, $type = 'image') { $realPath = public_path().ltrim($src, '/'); $oss = false; if (is_file($realPath) && $type == 'image') { $img = Image::open($realPath); list($w, $h) = $img->size(); $w_h = $w.'px * '.$h.'px'; } else { $w_h = ''; } $now = date('Y-m-d H:i:s'); Attachment::pathDirHandle($src); Config::load('extra/base', 'base'); $baseConfig = config('base'); if (isset($baseConfig['oss']) && $baseConfig['oss'] == 'true') { $ossObject = AliOss::instance(); try { $pathInfo = pathinfo($src); $ossConfig = AliOss::config(); $bucket = $ossConfig['bucket']; //是否存在 if (!$ossObject->doesObjectExist($bucket, ltrim($src, '/'))) { //创建目录 $ossObject->createObjectDir($bucket, ltrim($pathInfo['dirname'], '/')); $ossObject->uploadFile($bucket, ltrim($src, '/'), $realPath); } $oss = true; } catch (Exception $e) { \think\facade\Log::error('阿里云OSS上传文件失败 '.$e->getMessage()); } } // 将src中路径创建 return self::create([ 'type' => $type, 'name' => $file->getOriginalName(), 'md5' => $md5, 'src' => $src, 'path' => isset(pathinfo($src)['dirname']) ? pathinfo($src)['dirname'].'/' : '', 'size' => $file->getSize(), 'suffix' => $file->getOriginalExtension(), 'mime_type' => $file->getOriginalMime(), 'created_at' => $now, 'updated_at' => $now, 'is_oss' => $oss, 'w_h' => $w_h ]); } //获取所有记录 public static function getAll() { return self::select()->toArray(); } }