• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel框架实现的上传图片到七牛功能详解

    本文实例讲述了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程序设计有所帮助。

    您可能感兴趣的文章:
    • laravel框架上传图片实现实时预览功能
    • laravel框架 laravel-admin上传图片到oss的方法
    • Laravel框架实现文件上传的方法分析
    • Laravel框架文件上传功能实现方法示例
    • Laravel框架+Blob实现的多图上传功能示例
    • Laravel框架实现点播上传阿里云功能
    上一篇:浅析PHP7 的垃圾回收机制
    下一篇:Laravel框架中缓存的使用方法分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Laravel框架实现的上传图片到七牛功能详解 Laravel,框架,实现,的,上传,