Bläddra i källkod

图片上传修改

xyxie 1 år sedan
förälder
incheckning
1df00b5ecf
1 ändrade filer med 44 tillägg och 18 borttagningar
  1. 44 18
      controllers/resource.go

+ 44 - 18
controllers/resource.go

@@ -596,27 +596,53 @@ func (this *ResourceController) UploadImageBase64() {
 	fpath := uploadDir + "/" + fileName
 
 	image := this.Ctx.Request.FormValue("Image")
+
 	if image == "" {
-		br.Msg = "参数错误"
-		br.ErrMsg = "图片内容不能为空"
-		return
-	}
-	b, _ := regexp.MatchString(`^data:\s*image\/(\w+);base64,`, image)
-	if !b {
-		br.Msg = "图片格式不正确"
-		br.ErrMsg = "图片格式不正确"
-		return
-	}
-	re, _ := regexp.Compile(`^data:\s*image\/(\w+);base64,`)
-	base64Str := re.ReplaceAllString(image, "")
-	base64Str = strings.Replace(base64Str, " ", "", -1)
+		// 从 file文件中获取
+		f, h, e := this.GetFile("Image")
+		if e != nil {
+			br.Msg = "参数错误"
+			br.ErrMsg = "获取资源信息失败,Err:" + e.Error()
+			return
+		}
+		ext = path.Ext(h.Filename)
+		dateDir := time.Now().Format("20060102")
+		uploadDir = utils.STATIC_DIR + "hongze/" + dateDir
+		err = os.MkdirAll(uploadDir, utils.DIR_MOD)
+		if err != nil {
+			br.Msg = "存储目录创建失败"
+			br.ErrMsg = "存储目录创建失败,Err:" + err.Error()
+			return
+		}
+		randStr = utils.GetRandStringNoSpecialChar(28)
+		fileName = randStr + ext
+		fpath = uploadDir + "/" + fileName
+		defer f.Close() //关闭上传文件
+		err = this.SaveToFile("Image", fpath)
+		if err != nil {
+			br.Msg = "文件上传失败"
+			br.ErrMsg = "文件上传失败,Err:" + err.Error()
+			return
+		}
+	} else {
+		b, _ := regexp.MatchString(`^data:\s*image\/(\w+);base64,`, image)
+		if !b {
+			br.Msg = "图片格式不正确"
+			br.ErrMsg = "图片格式不正确"
+			return
+		}
+		re, _ := regexp.Compile(`^data:\s*image\/(\w+);base64,`)
+		base64Str := re.ReplaceAllString(image, "")
+		base64Str = strings.Replace(base64Str, " ", "", -1)
 
-	err = utils.SaveBase64ToFile(base64Str, fpath)
-	if err != nil {
-		br.Msg = "图片保存失败"
-		br.ErrMsg = "图片保存失败,Err:" + err.Error()
-		return
+		err = utils.SaveBase64ToFile(base64Str, fpath)
+		if err != nil {
+			br.Msg = "图片保存失败"
+			br.ErrMsg = "图片保存失败,Err:" + err.Error()
+			return
+		}
 	}
+
 	fmt.Println("end")
 
 	defer os.Remove(fpath)