文件上传
优点
1、支持YII2,和阿里云OSS, (*1)
2、支持上传base64字符串的图片,支持上传图片,支持上传远程图片至阿里云OSS, (*2)
3、所有驱动使用interface规范, (*3)
提示:packagist目录链接有问题,推荐到我的项目地址中看文档, (*4)
目录文档
安装
composer require xing.chen/upload dev-master, (*5)
配置
原生代码配置
'xing\upload\UploadYii',
'uploadPathRoot' => '/var/www/', # 网站目录
'relativePath' => 'upload/', # 上传目录
'maxSize' => 2048000, ## 上传大小限制
'domain' => 'http://images.xxx.com/', # 访问域名
];
// 上传到OSS
$config = [
'uploadPathRoot' => '/var/www/', # 网站目录
'relativePath' => 'upload/',
'maxSize' => 2048000, ## 上传大小限制
'domain' => 'http://images.xxx.com/', # 访问域名
'config' => [
'OSS_ACCESS_ID' => 'oos id',
'OSS_ACCESS_KEY' => 'OSS_ACCESS_KEY',
'OSS_ENDPOINT' => $_SERVER["REMOTE_ADDR"] === '127.0.0.1' ? 'oss-cn-shanghai.aliyuncs.com' : 'oss-cn-shanghai-internal.aliyuncs.com',
'UploadBucket' => 'bucket', //上传到云存储服务器的bucket名字
'UploadDomain' => 'xxx.com', //上传文件的Bucket可以自定义域名,对于不同的Bucket使用不同的自定义域名
]
];
```
### YII框架配置
yii框架中可以同时支持上传至oss和自有服务器
```php
[
'upload' => [
'class' => 'xing\upload\core\YiiFactory',
# 默认使用驱动
'driveName' => 'ali',
'config' =>[
// oss配置
'ali' => [
'OSS_ACCESS_ID' => 'OSS_ACCESS_ID',
'OSS_ACCESS_KEY' => 'OSS_ACCESS_KEY',
'OSS_ENDPOINT' => 'oss 里的ENDPOINT',
'UploadBucket' => 'Bucket名称', //上传到云存储服务器的bucket名字
'UploadDomain' => 'xxx.com', //上传文件的Bucket可以自定义域名,对于不同的Bucket使用不同的自定义域名
'domain' => 'http://xxx.com/',
'relativePath' => 'upload/',
],
// 上传到自有服务器配置
'yii' => [
'uploadPathRoot' => '@api/web/',
'maxSize' => 2048000,
'domain' => 'http://xxx.com/',
'relativePath' => 'upload/',
],
],
]
];
```
# 原生代码上传
```php
config('驱动的简单配置,详细参考单一配置');
# 文件上传
$r = $upload->upload($postFieldName, '图片分类目录,如user');
# base64编码上传
$r = $upload->uploadBase64('base64编码', '图片分类目录,如user');
# 远程图片上传(仅支持阿里云)
$upload->uploadUrl('http://xx.com/xx.jpg');
```
### yii框架上传
```php
upload->getDrive($driveName);
$r = $upload->upload($postFieldName, '图片分类目录,如user');
# base64 编码上传
$r = $upload->uploadBase64('base64编码', '图片分类目录,如user');
# 远程图片上传(仅支持阿里云)
$upload->uploadUrl('http://xx.com/xx.jpg');
```
## 返回数据说明
//返回为数据为:
["url" => "http://xxx.com/upload/user/20171229140622184.jpg", // 完整url
"saveUrl" => "user/20171229140622184.jpg" // 相对url,保存到数据库里使用这个
]
### 前端访问
```php
getFileUrl($r['saveUrl']); // 图片完整访问url
# 删除
```
### 删除图片
```php
delete($r['saveUrl']); // 删除图片
?>