如今,开发应用时,我们会从不断增多的大量专用组件中选择合适的。既然已经有了 guzzlehttp/guzzle 组件,为什么还要浪费时间自己编写处理HTTP请求和响应库呢?

最近在做第三方登录,用户的头像处理成了一个问题。原来用户系统中的头像都是以文件的形式保存在我们自己的服务器中。

第三方账号的头像是以 url 的形式传入后台,考虑先通过后台将图片下载在服务器,重命名后存表。这样就与之前的用户系统一致,不用改代码。

安装 guzzle 组件

安装 guzzle 组件需要先安装 composer

# Install Composer

curl -sS https://getcomposer.org/installer | php

使用 composer 安装 guzzle

php composer.phar require guzzlehttp/guzzle

# 或者

composer require guzzlehttp/guzzle

用法

命名空间中引入 guzzle 依赖

use GuzzleHttp\Client;

use GuzzleHttp\Exception\GuzzleException;

保存头像,这里使用 md5 加密 url 作为文件名,基本可以保证唯一性。后缀选择 jpg,不知道会不会引起问题,暂时先这么处理了。

if (!empty($avatar)) {

if (strpos($avatar, 'http://') === 0 || strpos($avatar, 'https://') === 0) {

$client = new Client(['verify' => false]); //忽略SSL错误

$path = APP_ROOT . config('common.picture_path.user_avatar_path') . md5($avatar) . '.jpg';

$response = $client->get($avatar, ['save_to' => $path]); //保存远程url到文件

if ($response->getStatusCode() == 200) {

$avatar = md5($avatar) . '.jpg';

}

}

}

将生成后的文件名入库即可。

使用 curl-class 的 download 方法也可以实现相同的效果。

php远程下载头像,Laravel 项目中 远程把图片下载到本地相关推荐

  1. vue项目中使用a标签下载视频文件

    vue项目中使用a标签下载视频文件 前提条件: 1.地址为http 2.文件格式为MP4(仅代表这次项目中使用的情况) 示例代码: <el-button size="mini" ...

  2. scratch项目PPT:关于博客中scratch项目中教学PPT的下载与分享

    scratch项目PPT:关于博客中scratch项目中教学PPT的下载与分享 写在前面的话 scratch项目:聊天机器人(控制类之循环.条件语句:侦测类) 博客链接 教学PPT scratch项目 ...

  3. Vue项目中加载图片的坑

    Vue项目中加载图片时,遇到的坑 1.当直接在标签中,使用图片路径,此时可以正常显示. <img src='img_src' /> 正常显示 2.当img标签的src属性为变量时,且该变量 ...

  4. Enjoy! 多达400多万的动态搞笑,爱情,友情。。。。表情下载 表情表情自定义表情表情图片下载 自定义QQ表情使用方法完全图解

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 多达40 ...

  5. laravel 图片流_使用 Intervention/image 对 Laravel 项目中的图片进行处理

    在 Laravel 5 中集成 Intervention Image 实现对图片的创建.修改和压缩处理 Intervention Image是一个PHP图片操作处理库,为图片创建.修改及压缩等处理提供 ...

  6. JAVA项目中如何实现图片上传?

    JAVA项目中实现图片上传 **前端div** <div class="layui-form-item"><label class="layui-for ...

  7. android图片缓存,直接应用项目中的Android图片缓存技术

    前不久搞的Android图片缓存,刚开始引入开源的框架,用着还行,但是在开发中遇到问题,就比如universal-image-loader-1.9.5.jar这个框架吧,在加载图片的时候自定义imag ...

  8. Vue项目中设置背景图片

    在Vue项目开发中我们经常要向页面中添加背景图片,可是当我们在样式中添加了背景图片后,编译打包后,配置到服务器上时,由于路径解析的问题,图片并不能够正确的显示出来,如下CSS样式: backgroun ...

  9. vue项目中的h5图片上传(处理上传的时候图片被旋转的问题,并压缩图片大小)

    vue的图片上传 这个页面实现的主要是实现创建球队功能,里面包含队徽,球队类型,球队名称,所属地址 这里除了图片上传还有一个地址的三级联动功能,这里我把这个页面都贴上来了.这个项目中使用vux作为ui ...

  10. 记项目中png/jpg图片文字模糊之svg解决要点

    png/jpg的logo图片中文字部分放大后,会出现模糊.至于为什么不直接使用大图,是因为项目中图片是嵌入在td中,直接使用大图会撑大td,当然可能有些人建议使用CSS transform:scale ...

最新文章

  1. Could not load file or assembly App_Licenses.dll的问题
  2. 7-5 表格输出 (C语言)
  3. 在PHP中创建和编辑Excel电子表格
  4. 2021-04-07 In literature VS In the literature
  5. 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...
  6. 通过Python脚本理解系统进程间通信
  7. HDU1071_数学几何
  8. js获取html标签中的数据
  9. C语言题目教室数量编程,北京理工大学网教室C语言编程题库及答案(绝对经典).doc...
  10. 循环冗余校验码CRC
  11. std::is_same的用法
  12. kettle运行spoon.sh启动图形化界面报错处理
  13. Bitwise Operation
  14. #ifndef的详细意思
  15. 2020.9.20深圳湾-莫安迪摄影原创作品
  16. 【前端css】如何实现分隔线效果(css兄弟兄弟节点样式+ ~)
  17. EtherCat主站与从站简介
  18. Discuz! X2.5 数据字典
  19. 新娘JAVA_java新郎新娘结婚的问题
  20. VBS带你领略脚本语言的快乐!(实战篇—死循环)

热门文章

  1. python三方库是什么_python第三方库有哪几种
  2. 照相机成像原理 数码相机的成像原理
  3. keil5 社区版 使用教程 安装 下载 账号
  4. 怎么上传本地项目或文件到SVN服务器
  5. DIY_实现光敏电阻传感器简单控制LED
  6. 模型☀️Catia模型到Unity的转化过程
  7. mysql主从 备份数据库脱敏_数据库脱敏有用吗?会不会损坏重要数据?
  8. JavaScript使用Modbus协议实现RTU设备连云
  9. Python下的中文分词实现
  10. Linux开发之libaio源码分析及应用