准备
(1)注册七牛,实名认证获得30天的免费域名(也可以配置自己的域名)
(2)创建存储空间(笔者使用的是公有空间)
配置本地开发环境
(1)下载SDK
(2)导入SDK进laravel框架(笔者导入目录的是app,方便引入方法到控制器)
(3)指定路由,编写上传图片方法1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31/**
* 用户上传文件到七牛,并返回图片Url
* @param Request $request
* @return false|string
* @throws \Exception
*/
public function upload(Request $request)
{
// 获取鉴权
$auth = new Auth($this->accessKey, $this->secretKey);
$token = $auth->uploadToken($this->bucket, null, 3600);
// 上传文件
$image = $request->file('user_image');
if ($image->isValid()) {
$localPath = $image->getRealPath();
$key = 'imgUrl_'.microtime(true).'.jpg';
$uploadManager = new UploadManager();
if (!$uploadManager->putFile($token, $key, $localPath)) {
return Response::jsonResponse(109, '图片上传失败');
}
// 定义图片url
$retUrl = $this->domainName.$key;
return Response::jsonResponse(0, '图片上传成功', [
'callbackUrl' => $retUrl
]);
}
}
测试
使用postman测试接口