的步骤如下:
new FormData()
来创建一个FormData对象,它可以用来存储需要上传的文件及其它表单数据。formData.append(name, file)
方法将文件添加到FormData对象中。其中,name
为文件字段的名称,file
为要上传的文件对象。xhr.open(method, url, async)
方法来指定请求的方法、URL和是否使用异步模式。xhr.upload.addEventListener(event, callback)
方法监听上传的进度。event
为监听的事件类型,可以是progress
、load
、error
、abort
等。callback
为对应事件发生时的回调函数,可以用来更新上传进度条等操作。完整的代码示例如下:
// 创建FormData对象
var formData = new FormData();
// 获取文件输入框的File对象
var fileInput = document.getElementById('fileInput');
var file = fileInput.files[0];
// 将文件添加到FormData对象
formData.append('file', file);
// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 监听上传进度
xhr.upload.addEventListener('progress', function(e) {
if (e.lengthComputable) {
var progress = Math.round((e.loaded / e.total) * 100);
console.log('上传进度:' + progress + '%');
}
});
// 发送文件
xhr.open('POST', '/upload', true);
xhr.send(formData);
注意事项:
/upload
为实际的后端接口地址。FormData上传文件的优势:
formData.append()
方法来添加多个文件。upload
事件,可以实时获取上传进度。FormData上传文件的应用场景:
腾讯云相关产品推荐:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估。
领取专属 10元无门槛券
手把手带您无忧上云