🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# oss上传文件 think-admin默认上传文件到本地,如果需要使用第三方oss,需要使用到此库 thinkphp6 oss库: [https://github.com/suframe/oss](https://github.com/suframe/oss) ### 实现功能: - 七牛服务器上传文件 - 阿里os(待接入) - 腾讯oss(待接入) ### 安装 ``` //安装七牛sdk库 composer require qiniu/php-sdk //安装think oss库 composer require suframe/think-oss ``` 修改配置文件 config/oss.php ``` <?php return [ 'driver' => \suframe\oss\driver\QiNiu::class, 'url' => 'oss/upload', //上传的地址,可自定义 //上传中间件,目前使用的think-admin后台的中间件做身份过滤,可替换成你自己的中间件完成自己的验证 'middleware' => function() { return config('thinkAdmin.routeMiddleware', []); }, //七牛oss配置 'qiniu' => [ 'accessKey' => '', 'secretKey' => '', 'bucketDefault' => 'default', //默认的bucket 'bucket' => [ 'default' => '' //填写bucket绑定的域名 ] ] ]; ``` ### 修改上传 - 1.全局修改 在使用think-admin的时候,可以通过全局修改上传地址上传改造 修改 config/thinkAdmin.php 修改如下: ``` $rs = include (thinkAdminPath() . 'config/thinkAdminDefault.php'); $rs['upload_url'] = url(config('oss.url'))->build(); return $rs; ``` - 2.表单修改 如果只想部分表单使用oss上传,可在相应的表单项替换: 例如 app/ui/form/NewsForm.php ``` public function image() { return [ 'type' => 'uploadImage', 'action' => url(config('oss.url'))->build(), //下面callback 非必须,默认使用oss.php配置文件里面的bucketDefault,如果要传其他bucket,则增加callback即可 'callback' => function ($element) { $element->data([ 'bucket' => 'suframe', ]); return $element; } ]; } ``` 修改action即可, 如果对应不同的bucket,在callback 中增加data选项即可 ### 非think-admin下使用 非think-admin 下使用,需要自己去增加middleware,做身份过滤。