// 点击图片,模拟点击文件域
avatarImg.addEventListener('click', function () {
upload.click()
})
// 头像change事件
upload.addEventListener('change', async function () {
// 步骤
// 1.获取用户选择的文件 ==> this.files[0]
// 2. FormData 存用户选择的文件
// 3. axios发送请求实现上传头像功能
//1.
console.log(this.files[0])
// 判断用户是否选择文件,没有的话,不需要发送请求
if (!this.files[0]) {
//if成立,说明没有选择文件 this.files[0]是undefined
return // 后续代码不执行
}
//2.
let fd = new FormData()
fd.append('avatar', this.files[0]) //avatar 键,必须有引号
//3.
let {
data: {
data: { url }
}
} = await axios.post('/api/file', fd)
// console.log(res)
avatarImg.src = url
// 把头像的路径存到隐藏域中,serialize插件收集到头像数据
hiddenAvatar.value = url
})
头像上传功能
最新推荐文章于 2024-08-13 16:15:07 发布
该段代码展示了如何通过监听图片点击事件模拟文件域选择,然后使用FormData存储选择的文件,并通过axios进行文件上传API调用,更新头像并存储头像URL。如果用户未选择文件,则不会执行上传操作。
摘要由CSDN通过智能技术生成