我想为动态加载的用户文件(让我们假设简单的文件存储),但我想在发送实际文件(如用户被禁止)之前添加一些检查。我知道有一种方法可以在gin中提供整个目录,也有一种方法可以将文件作为附件发送(How to server a file from a handler in golang),但是否有一种方法可以简单地将文件作为实际图像发送回浏览器(没有下载附件提示),就像这个纯golang示例(https://golangbyexample.com/image-http-response-golang/)一样:
package main
import (
"io/ioutil"
"net/http"
)
func main() {
handler := http.HandlerFunc(handleRequest)
http.Handle("/photo", handler)
http.ListenAndServe(":8080", nil)
}
func handleRequest(w http.ResponseWriter, r *http.Request) {
fileBytes, err := ioutil.ReadFile("test.png")
if err != nil {
panic(err)
}
w.WriteHeader(http.StatusOK)
w.Header().Set("Content-Type", "application/octet-stream")
w.Write(fileBytes)
return
}
1条答案
按热度按时间bjp0bcyl1#
是的,这是可能的与g-gin。可以使用gin context的Data方法。
Data将一些数据写入body流并更新HTTP代码。
在这里检查gin提供的示例代码