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数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php生成图形(Libchart)实例
Nov 06 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
8个必备的PHP功能开发
Oct 02 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 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 加密解密内部算法
2010/04/22 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
pyside写ui界面入门示例
2014/01/22 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python切片知识解析
2016/03/06 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python manage.py runserver流程解析
2019/11/08 Python
Python安装whl文件过程图解
2020/02/18 Python
python 5个顶级异步框架推荐
2020/09/09 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
十八大感想感言
2014/02/10 职场文书
经济担保书范文
2014/04/02 职场文书
环境保护建议书
2014/08/26 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
告知书格式
2015/07/01 职场文书