1、首先,你得先建立起一个laravel项目
2、已经在七牛云官网上注册,并且拥有自己的对象存储,并创建存储空间
第一步:通过表单提交图片信息
<form action="{{ url('/upload') }}" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<input name="file" type="file" value="图片上传">
<input type="submit" value="确认">
</form>
注意:
(1) 这里笔者使用的是post方法,所以表单里面包含一个隐藏的 CSRF token,详情请看 https://laravel-china.org/docs/5.3/csrf
(2) 因为要上传文件,后台需要获取文件信息,所以form里面要添加enctype=”multipart/form-data”。只有使用了multipart/form-data,才能完整的传递文件数据
第二步:使用composer拉取组件
root@laravel:~# composer require qiniu/php-sdk
第二步:后台获取图片信息上传到存储空间里去
public function store(Request $request)
{
$file = $request->file('file');
// 需要填写你的 Access Key 和 Secret Key
$accessKey = env('QINIU_ACCESSKEY');
$secretKey = env('QINIU_SECRETKEY');
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
// 要上传的空间
$bucket = env('QINIU_BUCKET');
// 生成上传 Token
$token = $auth->uploadToken($bucket);
// 要上传文件的本地路径
$filePath = $file->getRealPath();
// 上传到七牛后保存的文件名
$key = 'safeapp/'.time().'.'.$file->getClientOriginalExtension();
// 初始化 UploadManager 对象并进行文件的上传。
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传。
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
}
注意:
(1) 这里笔者已经讲七牛的配置信息在 .env 文件中配置好了,你也只需要在该文件中配置一下你的 QINIU_ACCESSKEY 和 QINIU_SECRETKEY和QINIU_BUCKET就行了