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生成随机密码的几种方法
Jan 17 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 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
论建造顺序的重要性
2020/03/04 星际争霸
第五节 克隆 [5]
2006/10/09 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
详解python的几种标准输出重定向方式
2016/08/15 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
如何使用Python调整图像大小
2020/09/26 Python
Python脚本调试工具安装过程
2021/01/11 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
物业管理应届生求职信
2013/10/28 职场文书
会计岗位说明书
2014/07/29 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
父亲节寄语大全
2015/02/27 职场文书
薪资证明范本
2015/06/19 职场文书