golang实现文件上传功能


前端页面form表单

"/fileupload/upload" method="post" enctype="multipart/form-data"> "file" name="fileupload" />
"submit" value="上传" />

注意:实现文件上传的时候,form表单必须有enctype="multipart/form-data"属性;

可以自己设置上传文件的限制条件(文件大小,类型等)

控制器代码

//接收文件流并存储到本地
func (c *FileUploadController) FileHandler() {
    //获取上传的文件
    file, head, _ := c.GetFile("fileupload")
    ext := path.Ext(head.Filename)
    //限制上传文件类型
    var FileAllow map[string]bool = map[string]bool{
        ".jpg": true,
        ".txt": true,
        ".png": true,
        ".go":  true,
    }
    if _, ok := FileAllow[ext]; !ok {
        c.Ctx.WriteString("文件后缀名不符合上传要求")
        return
    }
       defer file.Close()           
   err:=c.SaveToFile("fileupload","static/upload/"+head.Filename)

    if err != nil {
        c.Ctx.WriteString("上传文件失败")
    }
    c.Ctx.WriteString("上传文件成功")
}

可以根据需求设置文件大小和文件后缀名。

需要自己设置路由