This commit is contained in:
suyl
2021-06-29 16:22:22 +08:00
parent f4bb820b56
commit fd0ab123fc
2 changed files with 160 additions and 22 deletions

View File

@@ -2,36 +2,88 @@ package controllers
import (
"encoding/json"
"git.rosy.net.cn/jx-callback/business/jxstore/knowledge"
"git.rosy.net.cn/jx-callback/business/model"
"fmt"
"github.com/astaxie/beego/server/web"
"mime/multipart"
"io/ioutil"
"os"
"regexp"
)
type KnowUploadController struct {
web.Controller
}
func (c *KnowUploadController) SnsUploadImg() {
callResult := &CallResult{}
var files []*multipart.FileHeader
if c.Ctx.Request.MultipartForm != nil {
if c.Ctx.Request.MultipartForm.File != nil {
if len(c.Ctx.Request.MultipartForm.File) > 0 {
files = c.Ctx.Request.MultipartForm.File["userfiles"]
}
}
func (ue *KnowUploadController) SnsUploadImg() {
//callResult := &CallResult{}
//var files []*multipart.FileHeader
//if c.Ctx.Request.MultipartForm != nil {
// if c.Ctx.Request.MultipartForm.File != nil {
// if len(c.Ctx.Request.MultipartForm.File) > 0 {
// files = c.Ctx.Request.MultipartForm.File["userfiles"]
// }
// }
//}
//isThumb, _ := c.GetBool("isThumb")
//callResult.Code = model.ErrCodeGeneralFailed
//callResult.Desc = "请上传正确文件!"
//if len(files) > 0 {
// if retVal, err := knowledge.SNSUploadImg(nil, files, isThumb); err == nil {
// data, _ := json.Marshal(retVal)
// callResult.Data = string(data)
// callResult.Code = model.ErrCodeSuccess
// }
//}
//c.Data["jsonp"] = callResult
//c.ServeJSONP()
err := ue.Ctx.Request.ParseForm()
if err != nil {
fmt.Fprintf(ue.Ctx.ResponseWriter, "解析参数失败: %v", err)
return
}
isThumb, _ := c.GetBool("isThumb")
callResult.Code = model.ErrCodeGeneralFailed
callResult.Desc = "请上传正确文件!"
if len(files) > 0 {
if retVal, err := knowledge.SNSUploadImg(nil, files, isThumb); err == nil {
data, _ := json.Marshal(retVal)
callResult.Data = string(data)
callResult.Code = model.ErrCodeSuccess
op := ue.Ctx.Request.Form.Get("action")
switch op {
case "config":
file, err := os.Open("deploy/config.json")
if err != nil {
fmt.Fprintf(ue.Ctx.ResponseWriter, "打开文件错误 : %v", err)
return
}
defer file.Close()
fd, err := ioutil.ReadAll(file)
if err != nil {
fmt.Fprintf(ue.Ctx.ResponseWriter, "读取文件失败 : %v", err)
return
}
src := string(fd)
re, _ := regexp.Compile(`\/\*[\S\s]+?\*\/`) // 匹配里面的注释
src = re.ReplaceAllString(src, "")
tt := []byte(src)
var r interface{}
err = json.Unmarshal(tt, &r) //这个byte要解码
if err != nil {
fmt.Fprintf(ue.Ctx.ResponseWriter, "json decode failed %v", err)
return
}
tt, err = json.Marshal(r)
if err != nil {
fmt.Fprintf(ue.Ctx.ResponseWriter, "json encode failed $v", err)
return
}
fmt.Fprint(ue.Ctx.ResponseWriter, string(tt))
// 上传图片的功能
case "uploadimage":
err := ue.Ctx.Request.ParseForm()
if err != nil {
fmt.Fprintf(ue.Ctx.ResponseWriter, "uploadimage parseform fail : %v", err)
return
}
fmt.Println("打印所有的请求 : ", ue.Ctx.Request.PostForm)
fmt.Println("打印 upfile :", ue.Ctx.Request.PostForm.Get("upfile"))
default:
fmt.Fprint(ue.Ctx.ResponseWriter, `{"msg":"请求地址错误"}`)
}
c.Data["jsonp"] = callResult
c.ServeJSONP()
}

86
deploy/config.json Normal file
View File

@@ -0,0 +1,86 @@
/* ,使 */
{
/* */
"imageActionName": "uploadimage", /* action */
"imageFieldName": "upfile", /* upfile */
"imageMaxSize": 2048000, /* B */
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* */
"imageCompressEnable": true, /* ,true */
"imageCompressBorder": 1600, /* */
"imageInsertAlign": "none", /* */
"imageUrlPrefix": "", /* 访 */
"imagePathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* /ueditor/jsp/upload/image, */
/* {filename} , */
/* {rand:6} , */
/* {time} */
/* {yyyy} */
/* {yy} */
/* {mm} */
/* {dd} */
/* {hh} */
/* {ii} */
/* {ss} */
/* \ : * ? " < > | */
/* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
/* 涂鸦图片上传配置项 */
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
"scrawlPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlMaxSize": 2048000, /* 上传大小限制单位B */
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
"scrawlInsertAlign": "none",
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
/* 抓取远程图片配置 */
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
"catcherPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
"catcherMaxSize": 2048000, /* 上传大小限制单位B */
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
/* 上传视频配置 */
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
"videoFieldName": "upfile", /* 提交的视频表单名称 */
"videoPathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoUrlPrefix": "", /* 视频访问路径前缀 */
"videoMaxSize": 102400000, /* 上传大小限制单位B默认100MB */
"videoAllowFiles": [
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
/* 上传文件配置 */
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
"fileFieldName": "upfile", /* 提交的文件表单名称 */
"filePathFormat": "/static/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"fileUrlPrefix": "", /* 文件访问路径前缀 */
"fileMaxSize": 51200000, /* 上传大小限制单位B默认50MB */
"fileAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
], /* 上传文件格式显示 */
/* 列出指定目录下的图片 */
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
"imageManagerListPath": "/static/upload/", /* 指定要列出图片的目录 */
"imageManagerListSize": 20, /* 每次列出文件数量 */
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
/* 列出指定目录下的文件 */
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
"fileManagerListPath": "/static/upload/", /* 指定要列出文件的目录 */
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
"fileManagerListSize": 20, /* 每次列出文件数量 */
"fileManagerAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
] /* */
}