我可以在网上找到一种上传异步文件的常用方法,其工作方式如下:
myUpload(ev) {
ev.preventDefault();
const data = new FormData();
data.append('file', this.uploadInput.files[0]);
/* Do the upload with something like axios */
axios.post('http://localhost:8000/upload', data)
. ...
}
我无法解释以下内容:
this.uploadInput.files[0]
是一个File
javascript对象。因此,FormData对象如何检索我们要发送的文件数据?
FormData
可能不是,但是浏览器会这样做,因为当axios将FormData
对象提供给浏览器的ajax功能(XHR或fetch
)时,浏览器可以使用File
对象中的数据来读取和发送文件。
您自己的JavaScript代码还可以File
使用FileReader
(另一个浏览器提供的功能)使用对象中的数据来读取文件。
File
不直接包含文件的数据,但确实包含浏览器可以用来读取文件的信息(而不会在代码中暴露其实际位置)。
¹也许不是字面上中的File
对象。使用浏览器私有持有的数据,两者之间的间接关系更可能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句