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 相关文章推荐
PHP 数组基础知识小结
Aug 20 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
php文件包含的几种方式总结
Sep 19 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
javascript之锁定表格栏位
2007/06/29 Javascript
Javascript模块模式分析
2008/05/16 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
浅析python递归函数和河内塔问题
2017/04/18 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
python求质数的3种方法
2018/09/28 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
升职自荐信范文
2013/10/05 职场文书
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
计算机专业自荐信
2015/03/05 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android