vue3中怎么点击按钮就上传文件

html 复制代码
<el-button text type="primary" @click="importBillExcel(row)">导入账单</el-button>
javascript 复制代码
// 导入客户账单Excel表
const importBillExcel = (row) => {
    let input = document.createElement('input')
    input.type = 'file'
    input.accept = '.pdf, .png, .zip, .jpg'; // 限制选择的文件类型为 .pdf, .png, .zip, .jpg
    input.style.display = 'none'
    document.body.appendChild(input)
    input.click();
    input.onchange = (e) => {
        const file = e.target.files[0] // 获取文件对象
        let paramsFile = new FormData() // 转为表单格式
        paramsFile.append('file',file) // 添加属性和值
        paramsFile.append('receivableBillSn',row.receivableBillSn) // 添加属性和值
        importCustomerBill(paramsFile).then(res=>{
            document.body.removeChild(input)
        })
    }
}

说明:file和receivableBillSn是接口importCustomerBill需要传递的参数;整个实现过程就是利用了input标签的type="file"的属性,这个属性就是可以弹出文件选择对话框;importBillExcel方法中就是创建了一个input节点添加type="file"属性,最后在移除input节点;

效果

相关推荐
over6975 分钟前
浏览器里的AI魔法:用JavaScript玩转自然语言处理
前端·javascript
Amy_cx11 分钟前
搭建React Native开发环境
javascript·react native·react.js
代码AI弗森13 分钟前
Python × NumPy」 vs 「JavaScript × TensorFlow.js」生态全景图
javascript·python·numpy
疏狂难除27 分钟前
关于spiderdemo第二题的奇思妙想
javascript·爬虫
渣渣盟1 小时前
探索Word2Vec:从文本向量化到中文语料处理
前端·javascript·python·文本向量化
Pu_Nine_91 小时前
Vue 3 + TypeScript 项目性能优化全链路实战:从 2.1MB 到 130KB 的蜕变
前端·vue.js·性能优化·typescript·1024程序员节
云枫晖1 小时前
Webpack系列-Loader
前端·webpack
aggression1 小时前
代码敲击乐:让你了解前端的动静结合和移动端的适配性
前端
yinuo1 小时前
深入理解与实战 Git Submodule
前端
骑自行车的码农1 小时前
React 事件收集函数
前端·react.js