[beego学习] AJAX文件上传

AJAX文件上传

1.前端代码

<script>
    $(function(){
        $("#uploadBtn").click(function(){
            var formdata = new FormData();
            console.log($("#uploadFile"));
            formdata.append("file", $("#uploadFile")[0].files[0])

            $.ajax({
                url:"/Upload",
                type:"POST",
                data:formdata,
                processData:false,          // 注意
                contentType:false,          // 注意
                success:function(res){
                    console.log("upload success");
                    console.log(res);
                },
                fail:function(res){
                    console.log("upload failed");
                    console.log(res);
                }
            })
        });
    });
</script>
<body>
    <form>
        <input type="file", id = "uploadFile"/><br>
        <input type="button", value = "上传" id = "uploadBtn"/>
    </form>
</body>

两个参数不想深究,记录下就行了
[beego学习] AJAX文件上传

2.后端处理POST请求

func (c *UploadController) Post(){
    // 获取上传的文件
    f, h, err := c.GetFile("file")
    if err != nil{
        fmt.Println("error")
    }

    defer f.Close() 		// 延迟关闭
    fmt.Println(h.Filename)

    // 保存文件
    c.SaveToFile("file", "upload/"+h.Filename)		//后一个参数是保存文件目录名, 文件夹必须要事先就已有,
    // c.Ctx.WriteString("上传成功")

    c.Data["json"] = map[string]interface{}{
        "code":200,
        "msg":"success",
    }
    c.ServeJSON()
}
上一篇:Go/Golang/Beego微服务基础实战


下一篇:beego启动找不到conf的原因