每个编程语言中文件操作、字符串操作都是最基本的功能,需要熟练掌握应用。
下载网络图片,并将文件保存到本地路径,本文就介绍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. Crontab使用语法格式
  2. 利物浦大学的office里面没有powerBI
  3. [Python图像处理] 七.图像阈值化处理及算法对比
  4. 引入其他配置文件(分模块开发)
  5. 架构师速成4.6-软技能和硬技能
  6. 【MySQL数据库】----保姆级MySQL驱动包安装+JDBC编程
  7. android--关于apk加密那点事的思考
  8. win10计算机打开速度慢,win10电脑速度突然很慢怎么处理
  9. 一只兔子帮你理解 kNN
  10. js原生拖拽的两种方法
  11. add new color number to the color drop down in enovia PLM
  12. 10-解决win10系统更新后开机变慢的问题
  13. Mat—基础图像容器(OpenCV教程)
  14. 人面不知何处去,桃花依旧笑春风……
  15. 基于OpenCASCADE自制三维建模软件(六)瓶子模型例程
  16. 利用MUI+个推实现APP消息推送
  17. 固件类型bios和uefi_BIOS和固件之间有什么区别?
  18. 详解mysql备份恢复的三种实现方式
  19. Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现)(二)生成XML文件(支持json,bean,map list数据源)
  20. ES6结构赋值,一篇就够

热门文章

  1. OpenChain Project宣布Bosch为白金会员
  2. G761-3005B伺服阀放大器
  3. 百度云不限速客户端让你获取SVIP速度
  4. 楚留香服务器维护,楚留香手游7月20日更新维护内容及家园系统详解介绍
  5. iOS 自动化测试 AirTest+wdaproxy(或按键精灵?!)
  6. 图像修复三: Image Completion Approaches Using the Statistics of Similar Patches
  7. 6-4 输出每个月的天数(2022-高级语言程序设计练习——函数)
  8. 全国空气质量排行,云贵川和西藏新疆等地空气质量更好
  9. 计算机辅助设计与制造第二版,计算机辅助设计与制造1.pdf
  10. springboot报Invalid bound statement (not found):