一,代码
go
//上传页面
func (ic *MediaController) Upload(c *gin.Context) {c.HTML(200, "upload.html", nil)
}//接收上传,多张图片
func (ic *MediaController) Uploaded(c *gin.Context) {//得到formform,err:=c.MultipartForm()//得到文件列表files:=form.File["f1m"]//错误处理if err != nil {global.NewResult(c).ErrorCode(500,"图片上传失败",nil)return}idStr:=global.FormattedNow("20060102150405");dateStr:=global.FormattedNow("20060102");preDir := "./static/ware/"+dateStr//如果目录不存在,则创建它if global.IsDirExists(preDir) == false {// 创建多级目录err := os.MkdirAll(preDir, 0755)if err != nil {fmt.Println(err)}}//处理文件var images []stringfor i,f:=range files{istr := strconv.Itoa(i)destImage := preDir+"/"+idStr+"_"+istr+".jpg"c.SaveUploadedFile(f,destImage)//return image urlimageUrl := "/static/ware/"+dateStr+"/"+idStr+"_"+istr+".jpg"images = append(images, imageUrl)}global.NewResult(c).Success(images)}
html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
多文件上传(可多选):<br/>
<form action="/media/uploaded" method="post" enctype="multipart/form-data"><input type="text" name="id" id="id" placeholder="请输入id" /> <br/><input type="file" name="f1m" multiple /><br/><input type="submit" value="上传">
</form>
</body>
</html>