Laravel框架实现的上传图片到七牛功能详解
发布:smiling 来源: PHP粉丝网 添加日期:2021-12-15 10:50:05 浏览: 评论:0
本文实例讲述了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地址了。这里只是演示一个最简单的实例,路由定义、视图样式、及逻辑层处理大家按照自己的项目来就行了。
Tags: Laravel上传图片 Laravel七牛
相关文章
- ·laravel实现上传图片的两种方式小结(2022-01-01)
- ·laravel实现一个上传图片的接口,并建立软链接,访问图片的方法(2022-01-01)
- ·laravel框架 laravel-admin上传图片到oss的方法(2022-01-01)
- ·laravel实现上传图片并在页面显示的例子(2022-01-02)
- ·laravel框架上传图片实现实时预览功能(2022-01-02)
- ·laravel实现上传图片,并且制作缩略图,按照日期存放的代码(2022-01-05)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)