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
Example: Fields and FieldsFunc from BYTES Package
How to import and alias package names?
How to write backslash in Golang string?
Get Set and Clear Session in Golang
Golang HTTP GET request with parameters
How to wait for Goroutines to Finish Execution?
How to Convert string to float type in Go?
Regular expression to validate email address
How to include and execute HTML template?
Dynamic XML parser without Struct in Go