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边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
重新认识php array_merge函数
Aug 31 PHP
php广告加载类用法实例
Sep 23 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
php操作redis数据库常见方法实例总结
Feb 20 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 ADODB使用方法集锦
2008/03/25 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
javascript实现拖放效果
2015/12/16 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
基于Three.js实现360度全景图片
2018/12/30 Javascript
学习python (2)
2006/10/31 Python
python编写的最短路径算法
2015/03/25 Python
python实现决策树
2017/12/21 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
python获取中文字符串长度的方法
2018/11/14 Python
对python函数签名的方法详解
2019/01/22 Python
原生python实现knn分类算法
2019/10/24 Python
Python实现元素等待代码实例
2019/11/11 Python
tensorboard显示空白的解决
2020/02/15 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
自我推荐书
2013/12/04 职场文书
教师党员思想汇报
2014/01/06 职场文书
2015年元旦活动总结
2014/05/09 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书