1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網營銷解決方案
      如何使用Go語言下載網絡圖片

      本篇文章給大家分享的是有關如何使用Go語言下載網絡圖片,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

      10年的資興網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網營銷的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整資興建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“資興網站設計”,“資興網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

      使用GoLang的http.Get()方法

      // 圖片以花瓣網的圖片為例
        imgUrl := "http://hbimg.b0.upaiyun.com/32f065b3afb3fb36b75a5cbc90051b1050e1e6b6e199-Ml6q9F_fw320"
      
        res, err := http.Get(imgUrl)
        if err != nil {
          fmt.Println("A error occurred!")
          return
        }
        // defer后的為延時操作,通常用來釋放相關變量
        defer res.Body.Close()

      然后獲得get請求響應的reader對象

      // 獲得get請求響應的reader對象
        reader := bufio.NewReaderSize(res.Body, 32 * 1024)

      上面獲取到了輸入流的reader對象, 下面來獲取本地文件的輸出流的writer對象

      imgPath := "C:\\Users\\Asche\\go\\src\\GoSpiderTest\\"
        // 根據(jù)圖片url獲取其文件名
        fileName := path.Base(imgUrl)
      
      
          file, err := os.Create(imgPath + fileName)
        if err != nil {
          panic(err)
        }
        // 獲得文件的writer對象
        writer := bufio.NewWriter(file)

      好了, reader和writer對象都得到了,然后在讀取寫入。

      如果嫌麻煩的話,可以直接copy:

      written, _ := io.Copy(writer, reader)
        // 輸出文件字節(jié)大小
        fmt.Printf("Total length: %d", written)

      或則手動讀取和寫入

      bytes := make([]byte, 32 * 1024)
        for {
          len, err := reader.Read(bytes)
      
          if len < 0 || err != nil{
            return
          }
          // 注意這里byte數(shù)組后的[0:len],不然可能會導致寫入多余的數(shù)據(jù)
          _, _ = writer.Write(bytes[0:len])
          fmt.Printf("%d ", len)
        }

      ok,下載完成。

      下面貼上完整的代碼(讀取寫入采用的方法一)

      package main
      
      import (
        "bufio"
        "fmt"
        "io"
        "net/http"
        "os"
        "path"
      )
      
      func main() {
        imgPath := "C:\\Users\\Asche\\go\\src\\GoSpiderTest\\"
        imgUrl := "http://hbimg.b0.upaiyun.com/32f065b3afb3fb36b75a5cbc90051b1050e1e6b6e199-Ml6q9F_fw320"
      
        fileName := path.Base(imgUrl)
      
      
        res, err := http.Get(imgUrl)
        if err != nil {
          fmt.Println("A error occurred!")
          return
        }
        defer res.Body.Close()
        // 獲得get請求響應的reader對象
        reader := bufio.NewReaderSize(res.Body, 32 * 1024)
      
      
        file, err := os.Create(imgPath + fileName)
        if err != nil {
          panic(err)
        }
        // 獲得文件的writer對象
        writer := bufio.NewWriter(file)
      
        written, _ := io.Copy(writer, reader)
        fmt.Printf("Total length: %d", written)
      }

      以上就是如何使用Go語言下載網絡圖片,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


      當前文章:如何使用Go語言下載網絡圖片
      文章起源:http://www.ef60e0e.cn/article/jgsipp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        武鸣县| 内乡县| 临湘市| 麟游县| 沙河市| 黄大仙区| 吉首市| 承德县| 全州县| 康乐县| SHOW| 佛学| 和龙市| 东乡族自治县| 如东县| 河南省| 丹江口市| 庆城县| 马山县| 苏尼特右旗| 溆浦县| 绥棱县| 岳普湖县| 西城区| 南岸区| 高密市| 遵化市| 通道| 上犹县| 达日县| 赤城县| 南安市| 安义县| 称多县| 离岛区| 麻栗坡县| 小金县| 休宁县| 苏尼特左旗| 安陆市| 阿拉善右旗|