94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | |||
|  | namespace app\model; | |||
|  | 
 | |||
|  | use think\Image; | |||
|  | 
 | |||
|  | class File extends Base | |||
|  | { | |||
|  |     const IMG = 'img'; | |||
|  |     const VIDEO = 'video'; | |||
|  |     const FILE = 'file'; | |||
|  | 
 | |||
|  |     //获取文件类型
 | |||
|  |     public static function getTypes() | |||
|  |     { | |||
|  |         return [ | |||
|  |             'img' => '图片', | |||
|  |             '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, $type = 'img') | |||
|  |     { | |||
|  |         $realPath = app()->getRootPath() . ltrim($src,'/'); | |||
|  |         if(is_file($realPath) && $type == 'img'){ | |||
|  |             $img = Image::open($realPath); | |||
|  |             list($w,$h) = $img->size(); | |||
|  |             $w_h = $w . 'px * ' . $h . 'px'; | |||
|  |         }else{ | |||
|  |             $w_h = ''; | |||
|  |         } | |||
|  |         return self::create([ | |||
|  |             'type' => $type, | |||
|  |             'name' => $file->getOriginalName(), | |||
|  |             'src' => $src, | |||
|  |             'size' => $file->getSize(), | |||
|  |             'suffix' => $file->getOriginalExtension(), | |||
|  |             'mime_type' => $file->getOriginalMime(), | |||
|  |             'create_time' => time(), | |||
|  |             'w_h' => $w_h | |||
|  |         ]); | |||
|  |     } | |||
|  | 
 | |||
|  |     //获取所有记录
 | |||
|  |     public static function getAll() | |||
|  |     { | |||
|  |         return self::select()->toArray(); | |||
|  |     } | |||
|  | } |