在 Laravel 上将图片上传到七牛云
由于服务器的资源是有限的,我们为了节省服务器的资源,通常会把一些图片文件放到第三方服务器中。比如:七牛云、阿里云、腾讯云等等。这里就记录一下怎么在 Laravel
中将图片上传到七牛云上。
在这里我们选择了 overtrue/laravel-filesystem-qiniu
扩展包,在项目根目录运行:
composer require overtrue/laravel-filesystem-qiniu
安装完成之后,我们需要在 config/app.php
中注册 Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider
:
' provider ' => [
// Other service providers...
Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider :: class,
],
然后将 config/filesystems.php
文件修改为:
<?php
return [
'disks' => [
//...
'qiniu' => [
'driver' => 'qiniu',
'access_key' => env('QINIU_ACCESS_KEY', 'xxxxxxxxxxxxxxxx'),
'secret_key' => env('QINIU_SECRET_KEY', 'xxxxxxxxxxxxxxxx'),
'bucket' => env('QINIU_BUCKET', 'test'),
'domain' => env('QINIU_DOMAIN', 'xxx.clouddn.com'), // or host: https://xxxx.clouddn.com
],
//...
]
];
我们要把七牛云的信息在 .env
文件中配置好
QINIU_ACCESS_KEY=xxxxxxxxxxxxxxxx
QINIU_SECRET_KEY=xxxxxxxxxxxxxxxx
QINIU_BUCKET=xxx
QINIU_DOMAIN=xxx
接下来我们就可以进行使用啦。由于我们不止一处地方用到上传图片,我们可以把上传图片写入到 自定义的辅助函数文件 中。
<?php
use Illuminate\Support\Facades\Storage;
/**
* 上传图片到七牛云
*
* @param $path 要保存的路径
* @param $file 上传的文件
* @return url 图片完全路径
*/
function upload_image($path, $file)
{
if (!$path) return false;
$disk = Storage::disk('qiniu');
//将文件上传到七牛云,并且返回七牛云上相对路径
$fileinfo = $disk->put($path, $file);
//用相对路径来获取图片的完整路径
return $disk->getUrl($fileinfo);;
}
接着就把图片地址保存到数据库中就行啦!
推荐文章: