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 相关文章推荐
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
深入解析php中的foreach函数
Aug 31 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
微信API接口大全
Apr 15 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
thinkphp5实现无限级分类
Feb 18 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
Apr 13 PHP
详解Laravel制作API接口
May 31 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
认识less和webstrom的less配置方法
2017/08/02 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
react build 后打包发布总结
2018/08/24 Javascript
js如何验证密码强度
2020/03/18 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
深入理解Javascript中的this关键字
2015/03/27 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
平民服装店创业计划书
2014/01/17 职场文书
小学生读书感言
2014/02/12 职场文书
节约电力资源的建议书
2014/03/12 职场文书
组织生活会发言材料
2014/12/15 职场文书
中学生思想品德评语
2014/12/31 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
安全生产感想
2015/08/07 职场文书
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python