3 回答

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

TA貢獻1798條經(jīng)驗 獲得超7個贊
在gin框架中向客戶端提供二進制文件,然后瀏覽器在用戶點擊API時自動下載文件,服務(wù)器不需要將文件保存到服務(wù)器(無需保存靜態(tài)文件),然后使用此方法c.Data。其中第三個參數(shù)的數(shù)據(jù)類型為[]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條經(jīng)驗 獲得超10個贊
您可以ResponseWriter在讀取文件時寫入。它的工作原理就像使用http.ResponseWriter.
import "io"
//...
io.Copy(ctx.ResponseWriter, ftpReader)
- 3 回答
- 0 關(guān)注
- 422 瀏覽
添加回答
舉報