Cara Menyimpan Imej daripada URL ke Fail: Mengatasi Tidak Boleh Menggunakan m (taip imej.Imej) sebagai Ralat []bait
Mendapatkan imej daripada URL dan menyimpannya ke fail adalah tugas biasa dalam banyak aplikasi pengaturcaraan. Dalam Go, ini boleh dicapai menggunakan pakej http dan imej. Walau bagaimanapun, anda mungkin menghadapi ralat semasa cuba menghantar imej. Jenis imej ke fungsi ioutil.WriteFile.
Mesej ralat, "tidak boleh menggunakan m (type image.Image) sebagai jenis []bait dalam fungsi argumen," menunjukkan bahawa imej.Jenis imej tidak boleh ditulis terus ke fail. Ini kerana fungsi ioutil.WriteFile menjangkakan kepingan bait ([]bait) sebagai hujah kedua.
Cara yang betul untuk menyimpan imej ke fail dalam situasi ini adalah untuk mengelakkan penyahkodan imej sama sekali. Sebaliknya, anda boleh menyalin terus badan respons, yang mengandungi data imej, ke fail.
package main import ( "fmt" "io" "log" "net/http" "os" ) func main() { url := "http://i.imgur.com/m1UIjW1.jpg" // don't worry about errors response, e := http.Get(url) if e != nil { log.Fatal(e) } 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!") }
Dalam kod yang diubah suai ini:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'tidak boleh menggunakan m (taip imej.Imej) sebagai Jenis []bait' Semasa Menyimpan Imej daripada URL dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!