亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang mux http.FileServer 不返回圖像

Golang mux http.FileServer 不返回圖像

Go
30秒到達戰場 2023-07-31 15:46:50
我是 Go 新手,正在嘗試設置 Go 服務器。我的目的是在點擊 url 時返回圖像。這就是我所做的myRouter := mux.NewRouter()myRouter.HandleFunc("/poster_path/{id}",posterfunc)這是我的海報功能func posterfunc(w http.ResponseWriter, r *http.Request){    w.Header().Set("Content-Type", "image/jpeg")    vars := mux.Vars(r)    key := vars["id"]    var url = "/home/rakshithjk/Desktop/poster/"+key+".jpg"    http.FileServer(http.Dir(url))}這是 Postman 中的輸出 -任何幫助,將不勝感激。
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

http.FileServer()不應該在這樣的函數中調用。它返回一個Handler function(類似于您創建的函數posterfunc)。

它應該用作路由配置中的處理程序函數,如下所示:

myRouter.HandleFunc("/poster_path/",http.FileServer(http.Dir("./your_dir")))

如果您想在處理程序中使用它,您應該使用http.ServeFile.?它將使用指定文件或目錄的內容響應請求。

func posterfunc(w http.ResponseWriter, r *http.Request){

? ? w.Header().Set("Content-Type", "image/jpeg")

? ? vars := mux.Vars(r)

? ? key := vars["id"]

? ? var url = "/home/rakshithjk/Desktop/poster/"+key+".jpg"

? ? http.ServeFile(w, r, url)

}

更新2:


新代碼片段中的問題是您在提供文件之前打印到界面。刪除這一行:


fmt.Fprintf(w, "Hello, %q\n", url)


查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號