Golang download file from url

Show

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
Various examples of printing and formatting in Golang How to copy a map to another map? Runtime package variables How to Unmarshal nested JSON structure? How to Convert string to integer type in Go? Regular expression to extract domain from URL Sierpinski triangle in Go Programming Language What is Rune? How to get ASCII value of any character in Go? How to concatenate two or more slices in Golang? How to play and pause execution of goroutine?