Go语言下载网络图片
每个编程语言中文件操作、字符串操作都是最基本的功能,需要熟练掌握应用。
下载网络图片,并将文件保存到本地路径,本文就介绍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
}
字符串操作
使用strings库LastIndex方法获取图片http路径中最后字符串作为文件名,如https://avatar.csdnimg.cn/2/9/0/1_togolife.jpg
返回最后一个/
位置。
再通过字符串切片操作获取1_togolife.jpg
,并与文件保存路径相加得到保存图片的完整文件名文件操作
使用ioutil库WriteFile写入文件,配置0666
权限表示新文件可读可写权限。在读取http返回结果时,也使用ioutil库ReadAll方法获取结果数据。
Go语言下载网络图片相关推荐
- Go语言下载网络图片或文件
最近闲来无事, 于是就简单学习了下Go语言的基本的用法.由于实践才是最快的学习方法, 所以这里就以下载网络图片或文件入手来学习Go语言 文件下载到本地,通常的思路就是先获得网络文件的 输入流 以及本地 ...
- Android异步下载网络图片(其三:ExecutorService)
在第一节中,我们使用Handler.Thread/Runnable .URL.HttpURLConnection等等来进行异步下载网络图片.然后第二节中换了AsyncTask方式.那么这一节我们再应用 ...
- Android异步下载网络图片(其二:AsyncTask)
在上一节中,我们使用Handler.Thread/Runnable .URL.HttpURLConnection等等来进行异步下载网络图片. 但是采用这种方式有一些缺点,如下: 线程的开销较大,如果每 ...
- ASP.NET下载网络图片
直接上干货: 目录 获取页面中的图片或者MP3文件路径 保存网路图片 保存网络文字 获取页面中的图片或者MP3文件路径 /// <summary>/// 获取网页中的图片路径list集合/ ...
- Android开发-下载网络图片并显示到本地
Android下载网络图片的流程是: 发送网络请求->将图片以流的形式下载下来->将流转换为Bitmap并赋给ImageView控件. 注意点 最新的Android系统不可以在主线程上请求 ...
- IOS开发基础之异步下载网络图片第1部分
IOS开发基础之异步下载网络图片第1部分 加入ATS // LJAppInfo.h // 37-异步下载网络图片 // Created by 鲁军 on 2021/3/10. #import < ...
- Python下载网络图片方法汇总与实现
本文介绍下载python下载网络图片的方法,包括通过图片url直接下载.通过re/beautifulSoup解析html下载以及对动态网页的处理等. 很多人学习python,不知道从何学起. 很多人 ...
- 使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结
下面来讲利用PHP下载网络图片常用的三个方法.当然,这三个方法都不是万能的,有时候会因为网络问题,或者网络图片的权限问题(大站一般都有防盗链)导致下载失败. 一起来看看吧,实际工作中经常用到. 方法一 ...
- Thread 实现多线程同步下载网络图片(Java)
Thread 实现多线程同步下载网络图片(Java) 1.自定义线程类继承Thread类 2.重写run()方法,编写线程执行体 3.创建线程对象,调用start()方法启动线程 4.Thread 实 ...
最新文章
- [JavaWeb基础] 007.Struts2的配置和简单使用
- 小程序在wxml使用indexOf
- TCP 和 UDP的理解
- Leetcode-笔记-22.括号生成--递归
- 清华大学朱军:发展安全可靠的AI,为什么依旧任重道远?
- [转]RegOpenKeyEx函数失败的问题
- opencv图像-拼接线的处理
- VS2012打开项目 提示Asp.net4.0未在web服务器上注册的解决方案
- 干货满满!龙蜥社区Meetup走进龙芯圆满结束,5大技术分享精彩回顾
- 重装Ubuntu系统
- 软件测试邻居集成,软件测试之集成测试(ppt-3).ppt
- 新生儿住月子中心20天患败血症 什么是败血症?有哪些危害
- 百度飞桨携手精诺数据打造智慧熔炼,AI让年轻人一秒变身“老师傅”
- Redis缓存——(分布式锁)
- apmserv php 5.6,APMServ下载|APMServ 5.2.6 正式版下载-太平洋下载中心
- java门禁系统项目开发实现
- 蚂蚁金服开放平台-支付宝新版接口的参数设置
- 周易六十四卦——讼卦
- 2021年Q1互联网母婴行业网络关注度分析报告
- 微信视频通话视频录制_录制视频通话和数据保护