在 go 中,可以通过两种方法直接返回图片:使用 image/jpeg 包,将图片文件内容写入响应体;使用 http.servefile 函数,直接返回图片文件。
如何在 Go 中直接返回图片
在 Go 中,可以通过以下两种方法直接返回图片:
方法 1:使用 image/jpeg 包
package main
import (
"image/jpeg"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 打开图片文件
file, err := os.Open("image.jpg")
if err != nil {
log.Fatal(err)
}
defer file.Close()
// 将文件内容写入响应体
_, err = jpeg.Encode(w, file, nil)
if err != nil {
log.Fatal(err)
}
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
方法 2:使用 http.ServeFile 函数
package main
import (
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 直接返回图片文件
http.ServeFile(w, r, "image.jpg")
})
log.Fatal(http.ListenAndServe(":8080", nil))
}