97 lines
2.5 KiB
PHP
Executable File
97 lines
2.5 KiB
PHP
Executable File
<?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();
|
||
}
|
||
}
|