Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Muat Turun dan Simpan Imej daripada URL dengan Cekap dalam Go?
Masalah:
Apabila cuba mendapatkan semula imej daripada URL dan simpan ke fail, ralat berlaku: "tidak boleh menggunakan m (jenis imej.Imej) sebagai jenis []bait dalam fungsi hujah."
Analisis:
Kod asal menukar imej kepada imej Go.Objek imej (m) yang merupakan perwakilan dalam memori bagi imej. Walau bagaimanapun, fungsi ioutil.WriteFile() menjangkakan kepingan bait ([]bait).
Penyelesaian:
Daripada menukar imej kepada perwakilan dalam memori , kita boleh terus menyalin badan tindak balas ke fail output menggunakan fungsi io.Copy. Berikut ialah versi kod yang diubah suai:
package main import ( "fmt" "io" "log" "net/http" "os" ) func main() { url := "http://i.imgur.com/m1UIjW1.jpg" // don't worry about errors response, err := http.Get(url) if err != nil { log.Fatal(err) } defer response.Body.Close() //open a file for writing file, err := os.Create("/tmp/asdf.jpg") if err != nil { log.Fatal(err) } defer file.Close() // Use io.Copy to just dump the response body to the file. This supports huge files _, err = io.Copy(file, response.Body) if err != nil { log.Fatal(err) } fmt.Println("Success!") }
Penjelasan:
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun dan Simpan Imej daripada URL dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!