每个编程语言中文件操作、字符串操作都是最基本的功能,需要熟练掌握应用。
下载网络图片,并将文件保存到本地路径,本文就介绍go语言中的一个实现示例。

实现思路: 函数定义中包含保存文件路径以及图片的http地址,首先需要根据图片http地址截取其最后一段作为文件名,然后使用go语言自带的http库请求获取图片,最后将获取到结果保存到文件中。

实现代码如下:

package mainimport ("fmt""io/ioutil""net/http""strings"
)// 下载图片信息
func downLoad(base string, url string) error {pic := baseidx := strings.LastIndex(url, "/")if idx < 0 {pic += "/" + url} else {pic += url[idx+1:]}v, err := http.Get(url)if err != nil {fmt.Printf("Http get [%v] failed! %v", url, err)return err}defer v.Body.Close()content, err := ioutil.ReadAll(v.Body)if err != nil {fmt.Printf("Read http response failed! %v", err)return err}err = ioutil.WriteFile(pic, content, 0666)if err != nil {fmt.Printf("Save to file failed! %v", err)return err}return nil
}func main() {savePath := "./"url := "https://avatar.csdnimg.cn/2/9/0/1_togolife.jpg"err := downLoad(savePath, url)if err != nil {fmt.Println("Download pic file failed!", err)} else {fmt.Println("Download file success.")}return
}
  1. 字符串操作
    使用strings库LastIndex方法获取图片http路径中最后字符串作为文件名,如https://avatar.csdnimg.cn/2/9/0/1_togolife.jpg返回最后一个/位置。
    再通过字符串切片操作获取1_togolife.jpg,并与文件保存路径相加得到保存图片的完整文件名

  2. 文件操作
    使用ioutil库WriteFile写入文件,配置0666权限表示新文件可读可写权限。在读取http返回结果时,也使用ioutil库ReadAll方法获取结果数据。

Go语言下载网络图片相关推荐

  1. Go语言下载网络图片或文件

    最近闲来无事, 于是就简单学习了下Go语言的基本的用法.由于实践才是最快的学习方法, 所以这里就以下载网络图片或文件入手来学习Go语言 文件下载到本地,通常的思路就是先获得网络文件的 输入流 以及本地 ...

  2. Android异步下载网络图片(其三:ExecutorService)

    在第一节中,我们使用Handler.Thread/Runnable .URL.HttpURLConnection等等来进行异步下载网络图片.然后第二节中换了AsyncTask方式.那么这一节我们再应用 ...

  3. Android异步下载网络图片(其二:AsyncTask)

    在上一节中,我们使用Handler.Thread/Runnable .URL.HttpURLConnection等等来进行异步下载网络图片. 但是采用这种方式有一些缺点,如下: 线程的开销较大,如果每 ...

  4. ASP.NET下载网络图片

    直接上干货: 目录 获取页面中的图片或者MP3文件路径 保存网路图片 保存网络文字 获取页面中的图片或者MP3文件路径 /// <summary>/// 获取网页中的图片路径list集合/ ...

  5. Android开发-下载网络图片并显示到本地

    Android下载网络图片的流程是: 发送网络请求->将图片以流的形式下载下来->将流转换为Bitmap并赋给ImageView控件. 注意点 最新的Android系统不可以在主线程上请求 ...

  6. IOS开发基础之异步下载网络图片第1部分

    IOS开发基础之异步下载网络图片第1部分 加入ATS // LJAppInfo.h // 37-异步下载网络图片 // Created by 鲁军 on 2021/3/10. #import < ...

  7. Python下载网络图片方法汇总与实现

    本文介绍下载python下载网络图片的方法,包括通过图片url直接下载.通过re/beautifulSoup解析html下载以及对动态网页的处理等. ​很多人学习python,不知道从何学起. 很多人 ...

  8. 使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结

    下面来讲利用PHP下载网络图片常用的三个方法.当然,这三个方法都不是万能的,有时候会因为网络问题,或者网络图片的权限问题(大站一般都有防盗链)导致下载失败. 一起来看看吧,实际工作中经常用到. 方法一 ...

  9. Thread 实现多线程同步下载网络图片(Java)

    Thread 实现多线程同步下载网络图片(Java) 1.自定义线程类继承Thread类 2.重写run()方法,编写线程执行体 3.创建线程对象,调用start()方法启动线程 4.Thread 实 ...

最新文章

  1. [JavaWeb基础] 007.Struts2的配置和简单使用
  2. 小程序在wxml使用indexOf
  3. TCP 和 UDP的理解
  4. Leetcode-笔记-22.括号生成--递归
  5. 清华大学朱军:发展安全可靠的AI,为什么依旧任重道远?
  6. [转]RegOpenKeyEx函数失败的问题
  7. opencv图像-拼接线的处理
  8. VS2012打开项目 提示Asp.net4.0未在web服务器上注册的解决方案
  9. 干货满满!龙蜥社区Meetup走进龙芯圆满结束,5大技术分享精彩回顾
  10. 重装Ubuntu系统
  11. 软件测试邻居集成,软件测试之集成测试(ppt-3).ppt
  12. 新生儿住月子中心20天患败血症 什么是败血症?有哪些危害
  13. 百度飞桨携手精诺数据打造智慧熔炼,AI让年轻人一秒变身“老师傅”
  14. Redis缓存——(分布式锁)
  15. apmserv php 5.6,APMServ下载|APMServ 5.2.6 正式版下载-太平洋下载中心
  16. java门禁系统项目开发实现
  17. 蚂蚁金服开放平台-支付宝新版接口的参数设置
  18. 周易六十四卦——讼卦
  19. 2021年Q1互联网母婴行业网络关注度分析报告
  20. 微信视频通话视频录制_录制视频通话和数据保护

热门文章

  1. CPU响应中断的条件是什么?简述中断处理过程
  2. 影响GPS定位精度的五大因素
  3. MyEclipse 10官网下载地址以及破解方法
  4. 江苏高等学校计算机等级考试中心,江苏省高等学校计算机等级考试中心
  5. android ios 逆向工程,iOS 逆向工程
  6. Java选择题【1】
  7. 零基础学UI设计难不难?
  8. 使用DDNS搭建Wireguard服务器的一个小问题
  9. QC插件下载地址大全
  10. Ubuntu 16.04 常用软件安装命令