mirror of https://github.com/IoTcat/auxpi.git
parent
ca0cd653d5
commit
cacf9bc4aa
14 changed files with 44 additions and 264 deletions
@ -1,98 +0,0 @@ |
||||
package uploadComm |
||||
|
||||
import ( |
||||
"auxpi/auxpiAll" |
||||
"auxpi/server" |
||||
"github.com/astaxie/beego" |
||||
"log" |
||||
"strings" |
||||
) |
||||
|
||||
|
||||
type HandleController struct { |
||||
beego.Controller |
||||
server.Sina |
||||
server.SouGou |
||||
} |
||||
|
||||
var picType = []string{"png", "jpg", "jpeg", "gif", "bmp"} |
||||
|
||||
//验证文件后缀&文件MIME
|
||||
func (this *HandleController) Validate(contentType string, fileName string) bool { |
||||
//首先检测文件的后缀
|
||||
isSuffix := false |
||||
for _, pType := range picType { |
||||
if strings.HasSuffix(fileName, pType) { |
||||
isSuffix = true |
||||
break |
||||
} |
||||
} |
||||
//然后检测 MIME 类型
|
||||
//beego.Alert(contentType)
|
||||
if strings.HasPrefix(contentType, "image") && isSuffix { |
||||
for _, pType := range picType { |
||||
if strings.HasSuffix(contentType, pType) { |
||||
return true |
||||
} |
||||
} |
||||
|
||||
} |
||||
return false |
||||
} |
||||
|
||||
func (this *HandleController) ErrorResponse(code int, msg string) { |
||||
result := &auxpi.ErrorJson{} |
||||
result.Code = code |
||||
result.Msg = msg |
||||
this.Data["json"] = result |
||||
this.ServeJSON() |
||||
} |
||||
|
||||
func (this *HandleController) Check() { |
||||
//获取上传类型
|
||||
apiSelect := this.GetString("apiSelect") |
||||
f, h, err := this.GetFile("image") |
||||
defer f.Close() |
||||
if err != nil { |
||||
log.Fatal("File Upload Err", err) |
||||
} |
||||
imgMime := h.Header.Get("Content-Type") |
||||
//验证
|
||||
validate := this.Validate(imgMime, h.Filename) |
||||
if validate { |
||||
//读取文件
|
||||
size := h.Size |
||||
fileContent := make([]byte, size) |
||||
f.Read(fileContent) |
||||
url := "" |
||||
switch apiSelect { |
||||
case "SouGou": |
||||
url = this.UpLoadToSouGou(fileContent) |
||||
case "Sina": |
||||
url = this.UpLoadToSina(fileContent, imgMime) |
||||
default: |
||||
url = "" |
||||
} |
||||
//如果有返回值
|
||||
if strings.HasPrefix(url, "http") { |
||||
//配置 json
|
||||
result := &auxpi.ResultJson{} |
||||
result.Code = 200 |
||||
result.Msg = "上传成功" |
||||
result.Data.Url = url |
||||
result.Data.Name = h.Filename |
||||
//beego.Alert(result)
|
||||
this.Data["json"] = result |
||||
this.ServeJSON() |
||||
return |
||||
} |
||||
|
||||
} |
||||
//返回失败 json
|
||||
result := &auxpi.ErrorJson{} |
||||
result.Code = 500 |
||||
result.Msg = "上传失败" |
||||
this.Data["json"] = result |
||||
this.ServeJSON() |
||||
return |
||||
} |
@ -0,0 +1,16 @@ |
||||
package routers |
||||
|
||||
import ( |
||||
"auxpi/controllers/api" |
||||
"github.com/astaxie/beego" |
||||
) |
||||
|
||||
func RegisterOpenApi() { |
||||
//不需要控制的 api 放到这里
|
||||
ns := |
||||
beego.NewNamespace("/api/v1", |
||||
beego.NSRouter("/web_upload/", &api.ApiUpLoadController{}, "post:UpLoadHandle"), |
||||
|
||||
) |
||||
beego.AddNamespace(ns) |
||||
} |
@ -1,46 +0,0 @@ |
||||
package routers |
||||
|
||||
import ( |
||||
"github.com/astaxie/beego" |
||||
"github.com/astaxie/beego/context/param" |
||||
) |
||||
|
||||
func init() { |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "IndexShow", |
||||
Router: `/`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "SinaShow", |
||||
Router: `/Sina`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "SmmsShow", |
||||
Router: `/Smms`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "AboutShow", |
||||
Router: `/about/`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
} |
@ -1,19 +0,0 @@ |
||||
package routers |
||||
|
||||
import ( |
||||
"github.com/astaxie/beego" |
||||
"github.com/astaxie/beego/context/param" |
||||
) |
||||
|
||||
func init() { |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers/upload:UpLoadController"] = append(beego.GlobalControllerRouter["auxpi/controllers/upload:UpLoadController"], |
||||
beego.ControllerComments{ |
||||
Method: "AuthUpLoadHandle", |
||||
Router: `/api/v1/auth/upload/`, |
||||
AllowHTTPMethods: []string{"post"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
} |
@ -1,46 +0,0 @@ |
||||
package routers |
||||
|
||||
import ( |
||||
"github.com/astaxie/beego" |
||||
"github.com/astaxie/beego/context/param" |
||||
) |
||||
|
||||
func init() { |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "IndexShow", |
||||
Router: `/`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "SinaShow", |
||||
Router: `/Sina`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "SmmsShow", |
||||
Router: `/Smms`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers:PagesController"] = append(beego.GlobalControllerRouter["auxpi/controllers:PagesController"], |
||||
beego.ControllerComments{ |
||||
Method: "AboutShow", |
||||
Router: `/about/`, |
||||
AllowHTTPMethods: []string{"get"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
} |
@ -1,19 +0,0 @@ |
||||
package routers |
||||
|
||||
import ( |
||||
"github.com/astaxie/beego" |
||||
"github.com/astaxie/beego/context/param" |
||||
) |
||||
|
||||
func init() { |
||||
|
||||
beego.GlobalControllerRouter["auxpi/controllers/upload:UpLoadController"] = append(beego.GlobalControllerRouter["auxpi/controllers/upload:UpLoadController"], |
||||
beego.ControllerComments{ |
||||
Method: "AuthUpLoadHandle", |
||||
Router: `/api/v1/auth/upload/`, |
||||
AllowHTTPMethods: []string{"post"}, |
||||
MethodParams: param.Make(), |
||||
Filters: nil, |
||||
Params: nil}) |
||||
|
||||
} |
Loading…
Reference in new issue