本文实例讲述了Laravel框架实现的上传图片到七牛功能。分享给大家供大家参考,具体如下:
新建项目
这里直接用一个新的Laravel5.3的项目进行演示,其他版本都是一样不会影响功能,顶多是路由位置不一样而已。已有项目的小伙伴可直接跳过次段。
# 新建项目 laravel new laravel-qiniu cd laravel-qiniu
安装Laravel七牛扩展包
过Composer安装:
composer require zgldh/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 视图
<!DOCTYPE html> <html> <head> <title>上传图片</title> </head> <body> <form method=\"post\" action=\"\" enctype=\"multipart/form-data\"> <input type=\"file\" name=\"file\"> <button type=\"submit\">上传图片</button> </form> </body> </html>
页面代码简单,没有任何样式(请原谅我偷懒),新建 UplaodController 上传文件控制器:
php artisan make:controller UploadController
实现上传方法:
<?php namespace App\\Http\\Controllers; use Illuminate\\Http\\Request; use zgldh\\QiniuStorage\\QiniuStorage; class UploadController extends Controller { /** * 上传文件到七牛 * @author 高伟 * @date 2016-11-09T16:58:37+0800 * @param Request $request [description] * @return [type] [description] */ public function uploadFile(Request $request) { // 判断是否有文件上传 if ($request->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 () { return view(\'index\'); }); // form提交到控制器路由 Route::post(\'upload\',\'UploadController@uploadFile\');
视图页面(resources\\views\\index.blade.php):
<!DOCTYPE html> <html> <head> <title>上传图片</title> </head> <body> <form method=\"post\" action=\"{{url(\'upload\')}}\" enctype=\"multipart/form-data\"> {{csrf_field()}} <input type=\"file\" name=\"file\"> <button type=\"submit\">上传图片</button> </form> </body> </html>
OK,刷新页面就能看到上传后的url地址了。这里只是演示一个最简单的实例,路由定义、视图样式、及逻辑层处理大家按照自己的项目来就行了
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
暂无评论内容