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读注册表
Oct 09 PHP
ajax缓存问题解决途径
Dec 06 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
PHP中数据库单例模式的实现代码分享
Aug 21 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
Django 中 cookie的使用
Aug 17 PHP
php实现小程序支付完整版
Oct 09 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/11/24 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
js 事件小结 表格区别
2007/08/13 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
vue中倒计时组件的实例代码
2018/07/06 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
python异常处理try except过程解析
2020/02/03 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
面试求职的个人自我评价
2013/11/16 职场文书
学校办公室主任职责
2013/12/27 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2014年纪检工作总结
2014/11/12 职场文书
管理失职检讨书
2015/05/05 职场文书
行政上诉状范文
2015/05/23 职场文书
建党伟业的观后感
2015/06/01 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang