本代码演示在angular中使用jquery向golang后端上传图片
html
<div class="div1">
<form >
<h3>jQuery用FormData实现文件上传</h3>
<input type="file" id="avatar" name="images" multiple><br>
<button type="button" id="button1">上传文件</button>
</form>
</div>
TypeScript
ngOnInit() {
var serve_url = "http://192.168.25.128:4400";
// jQuery上传文件
$('#button1').click(function(){
var files = $('#images').prop('files');
console.log(files);
var data = new FormData();
data.append('image', files[0]);
$.ajax({
url: this.serve_url + "/upload/",
type: 'POST',
data: data,
cache: false,
processData: false, //避开jQuery对 formdata 的默认处理
contentType: false //加上正确的Content-Type
});
});
}
Golang
func uploadfunction(w http.ResponseWriter, r *http.Request){
w.Header().Set("Access-Control-Allow-Origin", "*")
r.ParseForm()
fmt.Println("req.Method : ",r.Method)
uploadFile, handle, err := r.FormFile("image")
if err!=nil {
fmt.Println("err :",err)
}
fmt.Println("filename :" ,handle.Filename)
os.Mkdir("./driver-images/", 0777)
saveFile, err := os.OpenFile("./driver-images/" + handle.Filename, os.O_WRONLY|os.O_CREATE, 0666);
if err != nil {
fmt.Println("err :",err)
}
io.Copy(saveFile, uploadFile);
defer uploadFile.Close()
defer saveFile.Close()
fmt.Println("Copy complace !")
}