97 lines
2.5 KiB
PHP
97 lines
2.5 KiB
PHP
|
<?php
|
|||
|
namespace app\model;
|
|||
|
|
|||
|
use think\Image;
|
|||
|
|
|||
|
class File extends Base
|
|||
|
{
|
|||
|
const IMG = 'img';
|
|||
|
const VIDEO = 'video';
|
|||
|
const FILE = 'file';
|
|||
|
const AUDIO = 'audio';
|
|||
|
|
|||
|
//获取文件类型
|
|||
|
public static function getTypes()
|
|||
|
{
|
|||
|
return [
|
|||
|
'img' => '图片',
|
|||
|
'video' => '视频',
|
|||
|
'file' => '文件',
|
|||
|
'audio' => '音频',
|
|||
|
];
|
|||
|
}
|
|||
|
|
|||
|
//获取文件列表
|
|||
|
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,
|
|||
|
'md5' => $file->md5()
|
|||
|
]);
|
|||
|
}
|
|||
|
|
|||
|
//获取所有记录
|
|||
|
public static function getAll()
|
|||
|
{
|
|||
|
return self::select()->toArray();
|
|||
|
}
|
|||
|
}
|