在这里,我想点击golang的api,以使用javascript在本地系统上载文件。为了获取密钥,文件的值对,我在javascript中读取了FormData方法,并在代码中使用了它,但是在分配数据时,它将不采用密钥,值。我已经发布了我的代码。
function uploadFile(){
var url = "http://localhost:8081/shapi/v1/upload";
var archivoSeleccionado = document.getElementById("myfile");
var file = archivoSeleccionado.files[0];
var f = new FormData();
console.log(file)
f.append("file", file);
console.log("f", f)
var xmlHTTP= new XMLHttpRequest();
xmlHTTP.open("POST", url, true);
xmlHTTP.send(f);
}
在console.log(file)
的控制台中,它将打印
File { name: "541660.jpg", lastModified: 1537849576000, webkitRelativePath: "", size: 243477, type: "image/jpeg" }
在console.log("f", f)
的控制台中,它将打印:-
FormData { }
有人可以告诉我代码中的问题吗?
可运行代码段
function uploadFile() {
var archivoSeleccionado = document.getElementById("myfile");
var file = archivoSeleccionado.files[0];
var f = new FormData();
console.log(file)
f.append("file", file);
console.log("f", f)
}
<input id="myfile" type="file" />
<button onclick="uploadFile()">Upload</button>
答案 0 :(得分:1)
这仅仅是因为当您登录FormData
时,默认情况下它没有公开它的内容,因此您必须显式地获取它,您可以使用get(key)
或{{3 }}
function uploadFile() {
var archivoSeleccionado = document.getElementById("myfile");
var file = archivoSeleccionado.files[0];
var f = new FormData();
console.log(file)
f.append("file", file);
console.log("f", f.get("file"))
}
<input id="myfile" type="file" />
<button onclick="uploadFile()">Upload</button>