|
|
package v1
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
"github.com/astaxie/beego"
|
|
|
"opp/controllers"
|
|
|
"opp/internal/utils"
|
|
|
"opp/protocol"
|
|
|
"path/filepath"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
type FileController struct {
|
|
|
controllers.BaseController
|
|
|
}
|
|
|
|
|
|
// DownLoad
|
|
|
// @router /opp/file [post]
|
|
|
func (this *FileController) DownLoad() {
|
|
|
var (
|
|
|
msg *protocol.ResponseMessage
|
|
|
err error
|
|
|
rsp *protocol.FileResponse = &protocol.FileResponse{}
|
|
|
)
|
|
|
defer func() {
|
|
|
if msg.Errno != 0 {
|
|
|
this.Resp(msg)
|
|
|
}
|
|
|
}()
|
|
|
fileUrl := this.Ctx.Request.RequestURI
|
|
|
filePath := strings.Replace(fileUrl, "/file/opp", "", 1)
|
|
|
filePath = filepath.Join(beego.AppConfig.String("source_path"), filePath)
|
|
|
if utils.Exists(filePath) {
|
|
|
this.Ctx.Output.Download(filePath)
|
|
|
} else {
|
|
|
err = protocol.NewCustomMessage(0, fmt.Sprintf("文件不存在:%v", filePath))
|
|
|
}
|
|
|
msg = protocol.NewReturnResponse(rsp, err)
|
|
|
} |
...
|
...
|
|