3 回答

TA貢獻1830條經驗 獲得超3個贊
使用Context.Data寫入 a[]byte
作為響應。
您還可以使用Context.DataFromReader直接從 FTP 響應復制到 HTTP 響應。
HTTP 響應是字節流。沒有辦法解決這個問題。

TA貢獻1798條經驗 獲得超7個贊
在gin框架中向客戶端提供二進制文件,然后瀏覽器在用戶點擊API時自動下載文件,服務器不需要將文件保存到服務器(無需保存靜態文件),然后使用此方法c.Data。其中第三個參數的數據類型為[]byte。我希望這個答案對每個人都有用并且更容易理解。這是一個示例代碼。
func DownloadFile(c *gin.Context) {
byteFile, err := ioutil.ReadFile("./file.txt")
if err != nil {
fmt.Println(err)
}
c.Header("Content-Disposition", "attachment; filename=file-name.txt")
c.Data(http.StatusOK, "application/octet-stream", byteFile)
}

TA貢獻1906條經驗 獲得超10個贊
您可以ResponseWriter在讀取文件時寫入。它的工作原理就像使用http.ResponseWriter.
import "io"
//...
io.Copy(ctx.ResponseWriter, ftpReader)
- 3 回答
- 0 關注
- 410 瀏覽
添加回答
舉報