1.上传文件
func UploadFile(str string, c *gin.Context) (errs error, filename string) {
file, err := c.FormFile(str)
if err != nil {
return err, ""
}
foldername := "bh/"
dir := config.Conf.App.UploadPath + foldername
err1 := os.MkdirAll(dir, 0666)
if err1 != nil {
zlog.SugarLogger.Error("MkdirAll failed!:", err1)
return err1, ""
}
filename = strconv.FormatInt(time.Now().Unix(), 10) + path.Ext(file.Filename)
lastdst := path.Join(dir, filename)
errs = c.SaveUploadedFile(file, lastdst)
if errs != nil {
return errs, ""
}
return nil, foldername + filename
}
2. 上传照片
func UploadPhoto(code []string) (err error, paths []string) {
if len(code) == 0 {
return nil, nil
}
for _, v := range code {
var codestr = v
var dst string
if codestr[11] == 'j' {
dst = fmt.Sprintf("/%s.%s", strconv.FormatInt(time.Now().UnixNano(), 10), "jpg")
codestr = codestr[23:]
} else if codestr[11] == 'p' {
codestr = codestr[22:]
dst = fmt.Sprintf("/%s.%s", strconv.FormatInt(time.Now().UnixNano(), 10), "png")
} else if codestr[11] == 'g' {
codestr = codestr[22:]
dst = fmt.Sprintf("/%s.%s", strconv.FormatInt(time.Now().UnixNano(), 10), "gif")
} else {
return errors.New("不支持该图片格式!"), nil
}
folder := "photos"
dir := config.Conf.App.UploadPath + folder
path := dir + dst
data, err := base64.StdEncoding.DecodeString(codestr)
if err != nil {
return err, nil
}
err1 := os.MkdirAll(dir, 0666)
if err1 != nil {
return err, nil
}
file, err2 := os.OpenFile(path, os.O_CREATE|os.O_RDWR, os.ModePerm)
if err2 != nil {
return err, nil
}
defer file.Close()
file.Write(data)
path = folder + dst
paths = append(paths, path)
}
return nil, paths
}
3.删除文件
func DeleteFiles(path interface{}) error {
switch value := path.(type) {
case []string:
for _, v := range value {
v = config.Conf.App.UploadPath + v
err := os.Remove(v)
if err != nil {
return errors.New("file remove Error!")
}
}
case string:
value = config.Conf.App.UploadPath + value
err := os.Remove(value)
if err != nil {
return errors.New("file remove Error!")
}
}
return nil
}