2 回答
TA贡献1836条经验 获得超5个赞
在与 Ajax 请求进行了漫长而艰苦的斗争之后,我让它发送了正确的信息。这是我使用的代码:
var xhr = new XMLHttpRequest(),
boundary=Math.random().toString().substr(2);
var formdata = new FormData();
formdata.append("file", file);
xhr.open("POST", $id("upload").action, true);
//xhr.setRequestHeader("content-type", "multipart/form-data; charset=utf-8; boundary=" + boundary);
xhr.send(formdata);
请注意标题不再使用,我发现您可以比任何其他方法更容易地将数据附加到 formdata
TA贡献1876条经验 获得超6个赞
不确定这个答案是否适合您,但我能够form-data在客户端使用 ajax 上传文件,并在服务器上使用以下 Go 代码小片段:
file, handler, err := r.FormFile("img") // img is the key of the form-data
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fmt.Println("File is good")
fmt.Println(handler.Filename)
fmt.Println()
fmt.Println(handler.Header)
f, err := os.OpenFile(handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
io.Copy(f, file)
这r是*http.Request。PS 这只是将文件存储在同一文件夹中,不执行任何安全检查。
- 2 回答
- 0 关注
- 421 浏览
添加回答
举报