coco/context.go

27 lines
664 B
Go
Raw Normal View History

2023-10-13 22:30:29 +08:00
package coco
2023-03-12 21:44:19 +08:00
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http/httptest"
)
type Context struct {
*gin.Context
}
// SetBinaryFile 设置请求为文件下载
func (c *Context) SetBinaryFile(filename string, data []byte) {
c.Writer.Header().Set("Content-Type", "application/octet-stream")
c.Writer.Header().Set("Content-Transfer-Encoding", "binary")
c.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", filename))
_, _ = c.Writer.Write(data)
}
// NewMockContext 新建一个模拟 core.Context
func NewMockContext() *Context {
r := httptest.NewRecorder()
g, _ := gin.CreateTestContext(r)
return &Context{Context: g}
}