Laravel框架实现的上传图片到七牛功能详解
本文实例讲述了Laravel框架实现的上传图片到七牛功能。分享给大家供大家参考,具体如下:
新建项目
这里直接用一个新的Laravel5.3的项目进行演示,其他版本都是一样不会影响功能,顶多是路由位置不一样而已。已有项目的小伙伴可直接跳过次段。
#新建项目 laravelnewlaravel-qiniu cdlaravel-qiniu
安装Laravel七牛扩展包
过Composer安装:
composerrequirezgldh/qiniu-laravel-storage
然后在config/app.php中注册服务提供者:
zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class
接下来在config/filesystems.php里的disks中新增七牛配置:
'qiniu'=>[ 'driver'=>'qiniu', 'domains'=>[ 'default'=>'xxxxx',//你的七牛域名 'https'=>'xxxxx',//你的HTTPS域名 'custom'=>'xxxxx',//你的自定义域名 ], 'access_key'=>'',//AccessKey 'secret_key'=>'',//SecretKey 'bucket'=>'',//Bucket名字 'notify_url'=>'',//持久化处理回调地址 ],
OK,扩展包的安装就暂时介绍到这里,接下来我们要去七牛注册一个账号并且将上面的配置完善。
七牛账号注册及配置
先去七牛注册一个账号,点击官网的注册会让我们选择用户类型,这里我就选择个人用户。
接下来按照流程来进项注册就OK了,我就不演示给大家看了。由于我的手机号已经注册了,这里只能给大家看一下我已经添加了存储对象的实例了。
OK,简单的用图给大家看一下七牛的默认域名及自定义域名在哪里看。下面给大家看一下七牛的秘钥的位置:
点击秘钥管理,就可与看到个人七牛的秘钥了:
七牛在Laravel中的配置
上面已经介绍相关的配置在哪儿,现在我们要将这些配置在Laravel中使用:
上传图片到七牛
简单用一个示例来演示前端上传图片到后台后,用七牛的扩展上传图片
先在resources\views下新建index.blade.php视图
上传图片 上传图片
页面代码简单,没有任何样式(请原谅我偷懒),新建UplaodController上传文件控制器:
phpartisanmake:controllerUploadController
实现上传方法:
hasFile('file')){
//获取文件,file对应的是前端表单上传input的name
$file=$request->file('file');
//Laravel5.3中多了一个写法
//$file=$request->file;
//初始化
$disk=QiniuStorage::disk('qiniu');
//重命名文件
$fileName=md5($file->getClientOriginalName().time().rand()).'.'.$file->getClientOriginalExtension();
//上传到七牛
$bool=$disk->put('iwanli/image_'.$fileName,file_get_contents($file->getRealPath()));
//判断是否上传成功
if($bool){
$path=$disk->downloadUrl('iwanli/image_'.$fileName);
return'上传成功,图片url:'.$path;
}
return'上传失败';
}
return'没有文件';
}
}
添加路由:
//上传页面视图
Route::get('/upload',function()
{
returnview('index');
});
//form提交到控制器路由
Route::post('upload','UploadController@uploadFile');
视图页面(resources\views\index.blade.php):
上传图片 {{csrf_field()}} 上传图片
OK,刷新页面就能看到上传后的url地址了。这里只是演示一个最简单的实例,路由定义、视图样式、及逻辑层处理大家按照自己的项目来就行了
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。