我不想将视频放到static文件目录里对外开放,因此放了一个store目录作为用户登录可看的目录。
beego的实现方法如下:
```go
fileid,err := c.GetInt("fileid")
if err != nil{
logs.Error(err)
c.Ctx.WriteString("找不到文件")
}
fmt.Println(fileid)
theFilePath,err := class.GetFilepathWith(fileid)
if err != nil{
logs.Error(err)
c.Ctx.WriteString("找不到文件")
}
fmt.Println(theFilePath)
data,err := ioutil.ReadFile(theFilePath)
if err != nil{
logs.Error(err)
c.Ctx.WriteString("找不到文件")
}
//c.Ctx.Output.Download("store/audi.mp4")
c.Ctx.Output.Body(data)
```
但是我发现这种实现的视频,在桌面版的chrome中是能播放的,放到微信中无法播放。
于是我又用gin来实现了,gin实现如下:
```go
g := gin.Default()
g.GET("/video",func(c *gin.Context){
c.File("D:/codes/go/src/jingcheng/store/audi.mp4")
})
g.Run(":8081")
```
gin 实现是能够正常播放的,包括微信。
所以现在的问题就是我想解决beego的问题,因为毕竟方法什么的都依赖beego写了,现在转投gin时间上有点来不及。请小伙伴们说说看该怎么改进让beego加载的视频能在微信上正常查看
更多评论
试着参照着gin的实现用beego来搞,貌似成了,直接使用http包自带的ServeFile就OK了
代码如下:
```go
http.ServeFile(c.Ctx.ResponseWriter,c.Ctx.Request,theFilePath)
```
搞定搞定,如有小伙伴有更高明的解决方案,请回复
#1