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程序设计有所帮助。