如何将 Golang 中的 [][]byte 发送到浏览器以将其解码为图像
How does one send a [][]byte in Golang to the browser to be decoded as an image
在我的后端 golang 网络服务器中,我已经转换并处理了我使用 os.ReadDir
读取的图像目录
这些图像存储为 [][]byte
。我希望能够通过 GET 请求发送这些图像,以便使用 Javascript.
在浏览器中显示
我无法确定如何开始从 Golang Web 服务器发送数据的过程。我目前使用的资源是典型的 net/http 包和 Gorilla Mux/Websockets.
这里是一些示例代码,展示了我目前如何执行 return 一些 json 的获取请求。如何类似地发送 [][]byte 数组而不是呈现模板或 JSON?
import (
"html/template"
"log"
"net/http"
"encoding/json"
"github.com/gorilla/mux"
)
func ViewSample(rw http.ResponseWriter, req *http.Request) {
type Sample struct {
Id int `json:"id"`
Name string `json:"name"`
User string `json:"user
}
params := mux.Vars(req)
sampleId := params["id"]
sample := Sample{
Id: 3,
Name: "test",
User: "testuser"
}
json.NewEncoder(rw).Encode(sample)
}
如果您的图像存储在 []byte
中,您可以将其直接写入 http.ResponseWriter
func GetImage(w http.ResponseWriter, r *http.Request) {
image, err := getImage() // getImage example returns ([]byte, error)
if err != {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Write(image)
}
无法在单个响应中发送多张图片,而客户端本身就可以理解。您可以使用的一种方法是在第一次调用时 return 一个 json 文档,其中包含一个链接列表,可以单独获取每个图像。
在我的后端 golang 网络服务器中,我已经转换并处理了我使用 os.ReadDir
这些图像存储为 [][]byte
。我希望能够通过 GET 请求发送这些图像,以便使用 Javascript.
我无法确定如何开始从 Golang Web 服务器发送数据的过程。我目前使用的资源是典型的 net/http 包和 Gorilla Mux/Websockets.
这里是一些示例代码,展示了我目前如何执行 return 一些 json 的获取请求。如何类似地发送 [][]byte 数组而不是呈现模板或 JSON?
import (
"html/template"
"log"
"net/http"
"encoding/json"
"github.com/gorilla/mux"
)
func ViewSample(rw http.ResponseWriter, req *http.Request) {
type Sample struct {
Id int `json:"id"`
Name string `json:"name"`
User string `json:"user
}
params := mux.Vars(req)
sampleId := params["id"]
sample := Sample{
Id: 3,
Name: "test",
User: "testuser"
}
json.NewEncoder(rw).Encode(sample)
}
如果您的图像存储在 []byte
中,您可以将其直接写入 http.ResponseWriter
func GetImage(w http.ResponseWriter, r *http.Request) {
image, err := getImage() // getImage example returns ([]byte, error)
if err != {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Write(image)
}
无法在单个响应中发送多张图片,而客户端本身就可以理解。您可以使用的一种方法是在第一次调用时 return 一个 json 文档,其中包含一个链接列表,可以单独获取每个图像。