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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
Jun 26 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
一文搞懂PHP中的抽象类和接口
May 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
PHP之变量、常量学习笔记
2008/03/27 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
PHP的基本常识小结
2013/07/05 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python输出pdf文档的实例
2020/02/13 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
反邪教宣传工作方案
2014/05/07 职场文书
给学校的建议书范文
2014/05/15 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android