Laravel+Intervention实现上传图片功能示例

 更新时间:2019年07月09日 11:24:28   作者:webbc  
这篇文章主要介绍了Laravel+Intervention实现上传图片功能,结合实例形式分析了Intervention的安装及图片上传功能的相关设置、使用与注意事项,需要的朋友可以参考下

本文实例讲述了Laravel+Intervention实现上传图片功能。分享给大家供大家参考,具体如下:

问题

使用Laravel上传图片

解决

安装Intervention

根据这个链接来安装https://packagist.org/packages/intervention/image

使用Intervention

根据这个文档来进行使用http://image.intervention.io/getting_started/introduction

简单修改

使用下面的代码就能实现上传图片

Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');

由于Intervention保存的时候需要指定图片的保存的文件名,所以我写了一个工具类来生成随机文件名。

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/5/2 0002
 * Time: 17:34
 */
namespace App\Libs;
class UploadUtils {
  /**
   * 随机的文件名
   * @param int $len 随机文件名的长度
   * @return str 随机字符串
   */
  private static function randName($len = 10) {
    return substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234565789'), 0, $len);
  }
  /**
   * 创建文件上传到的路径
   * @return str 文件上传的路径
   */
  private static function createDir() {
    $dir = env('UPLOADPATH') . date('Ymd', time());
    if (is_dir($dir) || mkdir($dir, 0777, true)) {
      return $dir;
    }
  }
  /**
   * 获取上传文件的路径
   * @return str 文件的全路径
   */
  public static function getUploadPath($ext = 'jpg') {
    return self::createDir() . '/' . self::randName() . '.' . $ext;
  }
}

上传处理

//上传缩略图
if ($request->hasFile('thumb')) {//存在图片
   $file = $request->file('thumb');
   $path = UploadUtils::getUploadPath($file->guessExtension());//获取保存的文件路径
   Image::make($file)->resize(env('THUMB_WIDTH'), env('THUMB_HEIGHT'))->save($path);//保存
   ...
   #save database
   ...
}

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

相关文章

  • yii2实现

    yii2实现 "上一篇,下一篇" 功能的代码实例

    在很多页面上都需要加入上一篇,下一篇 按钮,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Yii编程开发常见调用技巧集锦

    Yii编程开发常见调用技巧集锦

    这篇文章主要介绍了Yii编程开发常见调用技巧,涉及Yii针对cookie、数据库、URL、项目等相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • TP3.2.3框架文件上传操作实例详解

    TP3.2.3框架文件上传操作实例详解

    这篇文章主要介绍了TP3.2.3框架文件上传操作,结合实例形式详细分析了thinkPHP3.2.3框架文件上传相关原理、实现方法与操作注意事项,需要的朋友可以参考下
    2020-01-01
  • php无限极分类实现的两种解决方法

    php无限极分类实现的两种解决方法

    本篇文章介绍了,在php中无限极分类实现的两种解决方法。需要的朋友参考下
    2013-04-04
  • PHP微信公众号自动发送红包API

    PHP微信公众号自动发送红包API

    微信发红包已经成为当今比较流行的祝福形式,大家都学着使用微信发红包,这篇文章主要为大家详细介绍了PHP微信公众号自动发送红包API,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • php中二维数组排序问题方法详解

    php中二维数组排序问题方法详解

    一维数组排序可以使用asort、ksort等一些方法进程排序,相对来说比较简单。二维数组的排序怎么实现呢?使用array_multisort和usort可以实现,下面跟着小编来学习php中二维数组排序问题方法详解
    2015-08-08
  • php框架CodeIgniter使用redis的方法分析

    php框架CodeIgniter使用redis的方法分析

    这篇文章主要介绍了php框架CodeIgniter使用redis的方法,结合实例形式分析了redis的安装、设置及CodeIgniter使用redis的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • ThinkPHP部署Workerman的成功使用示例

    ThinkPHP部署Workerman的成功使用示例

    本文介绍thinkphp中关于composer集成workerman的方法,并解决了安装过程 中遇到的错误,实现了和woerkman进行握手和通信的demo。用户可以在此基础上按自己的逻辑实现一个聊天系统或者客服系统。
    2023-06-06
  • phpmyadmin在宝塔面板里进不去的解决方案

    phpmyadmin在宝塔面板里进不去的解决方案

    这篇文章主要介绍了phpmyadmin在宝塔面板里进不去的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • laravel高级的Join语法详解以及使用Join多个条件

    laravel高级的Join语法详解以及使用Join多个条件

    今天小编就为大家分享一篇laravel高级的Join语法详解以及使用Join多个条件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10

最新评论