1.设置一个input的change事件,把参数填进去,需要用到
- <input
- type="file"
- accept=".xls,.xlsx"
- required
- @change="changeExcel($event)"
- />
2.先获取到事件内部的文件,通过length长度进行判断,在这里我限制了excel文件
- const files = ev.target.files;
- console.log(files);
- if (files.length < 0) {
- console.log('没有上传');
- return false;
- } else if (!/\.(xls|xlsx)$/.test(files[0].name.toLowerCase())) {
- ElMessage.warning('您上传的文件格式不正确');
- return false;
3.如果判断成功了就是用form data进行文件上传
- let param = new FormData(); //创建form对象
- param.append('file', files[0], files[0].name); //通过append向form对象添加数据
- fileParam.value = param;
- Filename.value = files[0].name;
4.请求接口axios,把需要上传的文件地址放进去即可
- axios({
- url: '上传文件的接口地址',
- method: 'POST',
- data: fileParam.value,
- })
最后附上事件的完整代码
- const changeExcel = (ev) => {
- const files = ev.target.files;
- console.log(files);
- if (files.length < 0) {
- console.log('没有上传');
- return false;
- } else if (!/\.(xls|xlsx)$/.test(files[0].name.toLowerCase())) {
- ElMessage.warning('您上传的文件格式不正确');
- return false;
- } else {
- let param = new FormData(); //创建form对象
- param.append('file', files[0], files[0].name); //通过append向form对象添加数据
- fileParam.value = param;
- Filename.value = files[0].name;
- }
- };