[TOC]
使用
依赖扩展
use bear\sys\config\Config;
use bear\extend\oss\Oss;
关于上传
暂时只支持本地上传和OSS上传两种方式
配置参数
'mold' => 'oss'
'mold' => 'local'
use \bear\extend\file\File;
Config::set('upload.filter',true);
Bear::returnJson(0,'上传成功',File::upload());
##OSS 上传
Config::set('upload.mold','oss');
Config::set('oss.bucket','');
Config::set('oss.endpoint','');
Config::set('oss.host','');
Config::set('aliyun.regionId','oss-cn-shenzhen');
Config::set('aliyun.accessId','');
Config::set('aliyun.accessKey','');
$info = File::upload();
if(!File::getError()){
Bear::returnJson(0,'上传成功',['path'=>$info[0]['path']]);
}
图片过滤
此功能需要DB扩展
开启此功能需要和MYSQL搭配使用,会检查数据库中图片HASH来判断是否存在此图片,如果存在就不会上传
配置参数'filter' => true
数据库表结构
CREATE TABLE `attachment` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '文件名',
`module` varchar(32) NOT NULL DEFAULT '' COMMENT '模块名,由哪个模块上传的',
`path` varchar(255) NOT NULL DEFAULT '' COMMENT '文件路径',
`thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '缩略图路径',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '文件链接',
`mime` varchar(64) NOT NULL DEFAULT '' COMMENT '文件mime类型',
`ext` char(4) NOT NULL DEFAULT '' COMMENT '文件类型',
`size` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文件大小',
`md5` char(32) NOT NULL DEFAULT '' COMMENT '文件md5',
`sha1` char(40) NOT NULL DEFAULT '' COMMENT 'sha1 散列值',
`driver` varchar(16) NOT NULL DEFAULT 'local' COMMENT '上传驱动',
`download` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '下载次数',
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '上传时间',
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`sort` int(11) NOT NULL DEFAULT '100' COMMENT '排序',
`status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态',
`up_type` varchar(50) DEFAULT NULL COMMENT '上传方式 oss:OSS上传 local:本地上传',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4144 DEFAULT CHARSET=utf8 COMMENT='附件表';
配置文件
默认是在入口文件目录下的attachment目录
有关上传处理的配置项位于 bear/framework/config/upload.php 配置文件中,请查看文件内容修改成满足项目需求的配置项。
上传
只需要执行组件的upload 方法,系统分自动分析上传数据完成上传处理,并将成功上传的文件列表返回。
$files = File::upload();
指定上传表单
File::upload('ico');
设置上传类型
File::type('jpg,png,txt')->upload();
设置上传大小
File::type('jpg,png,txt')->size(2000000)->upload();
获取上传错误
File::getError();
设置上传目录
File::path('News')->upload();
下载文件
//下载z.zip,下载文件名不a.zip
File::download('z.zip','a.zip');