功能介绍

用于管理帝国系统的附件。此类依赖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();