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


Posted in PHP onJuly 09, 2019

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

PHP 相关文章推荐
[FAQ]PHP中的一些常识:类篇
Oct 09 PHP
PHP模拟SQL Server的两个日期处理函数
Oct 09 PHP
PHP XML备份Mysql数据库
May 27 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
PHP获取ip对应地区和使用网络类型的方法
Mar 11 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
phpinfo无法显示的原因及解决办法
Feb 15 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 #PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 #PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 #PHP
PHP 7.4中使用预加载的方法详解
Jul 08 #PHP
php apache开启跨域模式过程详解
Jul 08 #PHP
php如何把表单内容提交到数据库
Jul 08 #PHP
php利用array_search与array_column实现二维数组查找
Jul 08 #PHP
You might like
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
Python函数嵌套实例
2014/09/23 Python
Python中使用PDB库调试程序
2015/04/05 Python
python 解压pkl文件的方法
2018/10/25 Python
django rest framework使用django-filter用法
2020/07/15 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
银行职员思想汇报
2013/12/31 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
小学英语课后反思
2014/04/26 职场文书
五四青年节的活动方案
2014/08/20 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python