说明
图片上传:
- 获取图片文件对象
- 使用FormData携带图片文件
const fd = new FormData()
fd.append(参数名, 值)
- 提交表单数据到服务器,使用图片url网址
示例
下面示例中,将图片上传到服务器,服务器返回图片上传后的url地址,然后在页面上显示该图片。
服务器接口文档:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片上传</title>
</head>
<body>
<!-- 文件选择元素 -->
<input type="file" class="upload">
<img src="" alt="" class="my-img">
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
/**
* 目标:图片上传,显示到网页上
* 1. 获取图片文件
* 2. 使用 FormData 携带图片文件
* 3. 提交到服务器,获取图片url网址使用
*/
// 文件选择元素-> change改变事件
document.querySelector('.upload').addEventListener('change', e => {
// 获取图片文件
console.log(e.target.files[0])
// 2. 使用 FormData 携带图片文件
const fd = new FormData()
// 第一个参数的名称使用img是根据服务器接口文档的规定填写的
fd.append('img', e.target.files[0])
// 3. 提交到服务器,获取图片url网址使用
axios({
url: 'https://hmajax.itheima.net/api/uploadimg',
method: 'post',
data: fd
}).then(result => {
console.log(result)
// 取出图片的url网址,用img标签加载显示
const imgUrl = result.data.data.url
document.querySelector('.my-img').src = imgUrl
})
})
</script>
</body>
</html>
下面选择文件上传: