热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

laravel图片流_laravel的图片处理

form表单必须添加enctypemultipartform-data创建一个上传图片handle类:getClientOriginalExtension())?:png;$f

form 表单必须添加 enctype="multipart/form-data"创建一个上传图片handle类 :getClientOriginalExtension() )?: 'png'; // $file -> getClientOriginalExtension(); //上传文件的后缀

$filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' .$extension;

// 如果上传的不是图片的话

if( !in_array( $extension , $this->allowed_ext )){

return false;

}

$file->move( $upload_path , $filename);

return [

'path' => "/$folder_name/$filename"

];

}

}

使用if( $request->avater){

$result = $uploader->save($request->avater , 'avater' , $user->id);

if( $result ){

$data['avater'] = $result['path'];

}

}

验证'avater' => 'mimes:jpeg,bmp,png|dimensions:min_width=100,min_height=200'

图片裁剪安装扩展包 intervention

composer require intervention/image

获取配置信息

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

修改上传文件getClientOriginalExtension()) ?: 'png';

// 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID

// 值如:1_1493521050_7BVc9v9ujP.png

$filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' . $extension;

// 如果上传的不是图片将终止操作

if ( ! in_array($extension, $this->allowed_ext)) {

return false;

}

// 将图片移动到我们的目标存储路径中

$file->move($upload_path, $filename);

// 如果限制了图片宽度,就进行裁剪

if ($max_width && $extension != 'gif') {

// 此类中封装的函数,用于裁剪图片

$this->reduceSize($upload_path . '/' . $filename, $max_width);

}

return [

'path' => config('app.url') . "/$folder_name/$filename"

];

}

public function reduceSize($file_path, $max_width)

{

// 先实例化,传参是文件的磁盘物理路径

$image = Image::make($file_path);

// 进行大小调整的操作

$image->resize($max_width, null, function ($constraint) {

// 设定宽度是 $max_width,高度等比例双方缩放

$constraint->aspectRatio();

// 防止裁图时图片尺寸变大

$constraint->upsize();

});

// 对图片修改后进行保存

$image->save();

}

}

本文由 邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: May 4, 2019 at 11:40 am



推荐阅读
  • 使用RSACryptoServiceProvider进行公钥加密我已经在CodeProject上发表了一篇文章,解释了如何使用RSA提供程序进行加密和解密:RSA私钥加密虽然200 ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • 这是orginally答复Elias的内容:为什么不需要E5风险控制我们一致认为E4和3.x并不是100%兼容的,E4只是提供了一个兼容层用于运行3.x的插件,这其实并不完全符合E4的设计理 ... [详细]
  • 前端微服务二
    为了解决庞大的一整块后端服务带来的变更与扩展方面的限制,出现了微服务架构(Microservices):微服务是面向服务架构(SOA)的一种变体,把应用程序设计成一系列松耦合的细粒 ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • 淘宝http:ip.taobao.cominstructions.php接口说明请求接口(GET):servicegetIpInfo.ph ... [详细]
  • 互联网世界 9 种基本的商业模式
    互联网世界9种基本的商业模式一个商业模式是运行一个公司的方法;通过该模式的运作,一个公司能维持自己的生存,就是说,能有收益。商业模式意味着一个公司是如何通过在价值链中定位自己,从而获 ... [详细]
  • 微信小程序官方组件展示之表单组件input源码
    以下将展示微信小程序之表单组件input源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。功能描述:输入框。该组件是原生组件, ... [详细]
  • 缓冲区溢出实例(一)–Windows
    一、基本概念缓冲区溢出:当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被填满从而覆盖了相邻内存区域的数据。可以修改内存数据,造成进程劫持,执行恶意代码,获 ... [详细]
  • hadoop完全分布式搭建
    原文链接:hadoop完全分布式搭建主机分配以及地址要求:角色主机名IP地址Namenodemaster192.168.222.201Datanodeslave ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 依赖注入_php 依赖注入容器
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了php依赖注入容器相关的知识,希望对你有一定的参考价值。原文: http://blog.csdn.net/r ... [详细]
  • 3295:[Cqoi2011]动态逆序对Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除 ... [详细]
  • Ubuntu16.0464位安装armlinuxgcc交叉编译器以及samba服务器
    交叉编译器是嵌入式开发的必要工具,但是由于目前大多数人使用64位ubuntu,在照着很多教程做的时候,就会失败,失败原因是64位ubuntu需要额外安装32位的兼容包。以arm-l ... [详细]
author-avatar
mobiledu2502905163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有