Golang download image from given URL
Example
package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"strings"
)
var (
fileName string
fullUrlFile string
)
func main() {
fullUrlFile = "http://www.golangprograms.com/skin/frontend/base/default/logo.png"
// Build fileName from fullPath
buildFileName()
// Create blank file
file := createFile()
// Put content on file
putFile(file, httpClient())
}
func putFile(file *os.File, client *http.Client) {
resp, err := client.Get(fullUrlFile)
checkError(err)
defer resp.Body.Close()
size, err := io.Copy(file, resp.Body)
defer file.Close()
checkError(err)
fmt.Println("Just Downloaded a file %s with size %d", fileName, size)
}
func buildFileName() {
fileUrl, err := url.Parse(fullUrlFile)
checkError(err)
path := fileUrl.Path
segments := strings.Split(path, "/")
fileName = segments[len(segments)-1]
}
func httpClient() *http.Client {
client := http.Client{
CheckRedirect: func(r *http.Request, via []*http.Request) error {
r.URL.Opaque = r.URL.Path
return nil
},
}
return &client
}
func createFile() *os.File {
file, err := os.Create(fileName)
checkError(err)
return file
}
func checkError(err error) {
if err != nil {
panic(err)
}
}
Most Helpful This Week
How to extract text from between html tag using Regular Expressions in Golang?
How to read current directory using Readdir?
How to convert Boolean Type to String in Go?
Anonymous Functions in Golang
How to Decode or Unmarshal bi-dimensional array of integers?
How to remove symbols from a string in Golang?