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>
两个参数不想深究,记录下就行了
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()
}