[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');