功能介绍
用于管理帝国系统的附件。此类依赖EapiDb.php和EapiUpload.php两个类。
setOption
功能:设置上传附件时的参数
参数:
- $name 参数名称,若此值为数组则表示批量设置。
- $value 参数值
示例:
// 将文件上传大小限制设置为 1MB
$api->load('file')->setOption('size' , 1024*1024);
// 可设置的值为
// size 0表示不限制
// mimes 文件mime类型,数组
// exts 允许上传的文件后缀
// fpath 文件保存路径方式 默认为1 一般不需要设置
// ftb 附件表序号 默认为1
// user 上传附件的用户 默认 admin
// modtype 上传附件模式 默认为 0 一般不用管
getOption
功能:获取配置信息
参数:
- $anme 配置名称
示例:
$api->load('file')->getOption('user'); //获取当前上传文件的用户名
upload
功能:上传文件,并自动写入到数据库。
参数:
- $file 表单中获取的文件
- $id 所属内容ID,添加内容时此值为0
- $classid 内容所属的栏目ID
- $filepass 临时文件ID值,一般默认为time()
- $type 文件类型 1为图片,2为Flash文件,3为多媒体文件,0为附件
示例:
// 获取从表中获取到的文件 表单<input type="file" name="image">
$file = $_FILES['image']; // 此处的image是表单中的name值
// 将文件上传到 栏目ID为3 ,内容ID为1
$fileinfo = $api->load('file' , [
'user' => 'admin',
'ftb' => '1'
])->upload($file , 1 , 3);
// 上传成功后将返回以下格式的信息
[
'filesize' => 23814, // 文件大小
'path' => '2020/06-25', // 保存路径
'filename' => 'b9fd5e73d5c7918ca56a65b7282e210a.png', // 文件名称
'no' => '3.png', // 上传前的文件名
'adduser' => 'admin', // 上传文件用户名
'filetime' => 1593098088, // 上传文件时间戳
'pubid' => '1000010000000206', // 文件的公共ID
'id' => 1, // 对应内容数据的id
'type' => 1, // 文件类型
'modtype' => 0,
'fpath' => 2, // 文件的路径方式,帝国参数设置中的值。
'classid' => 3, // 栏目id
'fileid' => 38, // 文件在数据表中的id
]
download
功能:下载远程文件,并保存至数据库
参数:
- $url 远程文件地址,可以是 https、http、//为开头
- $id 所属内容ID,添加内容时此值为0
- $classid 内容所属的栏目ID
- $filepass 临时文件ID值,一般默认为time()
- $type 文件类型 1为图片,2为Flash文件,3为多媒体文件,0为附件
- $http_user_agent 自定义浏览器特征,默认为空,将自动获取。
示例:
// 用法与upload完全基本一致,唯一不同的是需要配置文件的mimes,详情参考EapiUpload.php的download方法
// 将http://www.phome.net/img/logo.gif下载到 栏目ID为3 ,内容ID为1
$api->load('file' , [
'mimes' => [
'image/webp' => 'webp',
'image/jpeg' => 'jpg',
'image/gif' => 'gif',
'image/png' => 'png'
]
])->download('http://www.phome.net/img/logo.gif' , 1 , 3);
insert
功能:将文件写入数据表,若非自行开发某功能,一般用不上。
参数:
- $file 文件信息,通过EapiUpload.php类上传成功后的文件信息
- $id 对应的内容id
- $classid 对应的内容栏目
- $filepass 文件临时ID,一般为时间戳
- $type 文件类型
update
功能:更新附件信息,主要用在内容添加成功后用于对应内容ID。非深度开发功能,用不上。
参数
- $id
- $classid
- $filepass
delete
功能:删除附件,此功能在删除数据时常用到。
参数:
- $id 内容id
- $classid 内容所属栏目id
- $ftb 附件表分表序号,默认为null
示例:
// 假定我们现在要删除新闻表中ID为1的数据
$news = $api->load('table')->get('news' ,1,'classid'); // 获取到Id为1的栏目ID
$api->load('table')->delete('news' ,1); // 删除数据
$api->load('file')->delete(1,$news['classid']); // 删除附件
buildFileName
功能:生成帝国式的文件名
参数:
- $str 文件名字符串
getFullPath
功能:获取上文件的本地URL路径
参数:
- $file 上传成功后返回的文件数组信息
示例:
// 获取从表中获取到的文件 表单<input type="file" name="image">
$file = $_FILES['image']; // 此处的image是表单中的name值
// 将文件上传到 栏目ID为3 ,内容ID为1
$fileinfo = $api->load('file' , [
'user' => 'admin',
'ftb' => '1'
])->upload($file , 1 , 3);
// 获取当前文件的URL
$url = $api->load('file')->getFullPath($fileinfo);
// $url格式如 /d/p/2020/06/27/b9fd5e73d5c7918ca56a65b7282e210a.png 路径
getError
功能:获取操作过程中的错误信息
示例:
$api->load('file')->getError();