12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package controllers
- import (
- "bzd_server/conf"
- "bzd_server/lib"
- "crypto/md5"
- "fmt"
- beego "github.com/beego/beego/v2/server/web"
- "math/rand"
- "os"
- "path"
- "time"
- )
- type UpFileController struct {
- beego.Controller
- }
- func (c *UpFileController) UpFile() {
- f, h, _ := c.GetFile("file") //获取上传的文件
- ext := path.Ext(h.Filename)
- //验证后缀名是否符合要求
- var AllowExtMap map[string]bool = map[string]bool{
- ".jpg": true,
- ".jpeg": true,
- ".png": true,
- }
- if _, ok := AllowExtMap[ext]; !ok {
- c.Ctx.WriteString("后缀名不符合上传要求")
- return
- }
- //创建目录
- uploadDir := conf.Oss_file // + time.Now().Format("2006/01/02/")
- err := os.MkdirAll(uploadDir, 777)
- if err != nil {
- c.Ctx.WriteString(fmt.Sprintf("%v", err))
- return
- }
- //构造文件名称
- rand.Seed(time.Now().UnixNano())
- randNum := fmt.Sprintf("%d", rand.Intn(9999)+1000)
- hashName := md5.Sum([]byte(time.Now().Format("2006_01_02_15_04_05_") + randNum))
- fileName := fmt.Sprintf("%x", hashName) + ext
- //this.Ctx.WriteString( fileName )
- fpath := uploadDir + fileName
- println(fpath)
- defer f.Close() //关闭上传的文件,不然的话会出现临时文件不能清除的情况
- err = c.SaveToFile("file", fpath)
- if err != nil {
- c.Ctx.WriteString(fmt.Sprintf("%v", err))
- }
- c.Ctx.WriteString("{\n \"code\": 0\n ,\"msg\": \"ok!\"\n ,\"data\": {\n \"src\": \"" + conf.Oss + fileName + "\"\n }\n} ")
- }
- // 列表 -
- func (c *UpFileController) ConfigUpFileToken() {
- // 验证登录 User_r, User_x
- //b_, User_r, _ := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- //if !b_ {
- // c.Data["json"] = lib.JSONS{Code: 302, Msg: "请重新登录!"}
- // c.ServeJSON()
- // return
- //}
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: lib.UploadToken(c.GetString("T_suffix"))}
- c.ServeJSON()
- return
- }
|