# 完成上传的操作
思路如下:
# 1. 页面上写一个type='file'的input标签 是隐藏的 绑定一个ref属性
<input type="file"
name="file"
ref="file"
@change="handleFileChange"
style="display:none">
1
2
3
4
5
2
3
4
5
handleFileChange(e) {
let file = e.target.files[0]
this.fileName = file.name
this.file = file
}
1
2
3
4
5
2
3
4
5
- 页面上有一个按钮,点击按钮让他去触发input标签
<el-button size="small"
type="primary"
@click="handleUploadFile">上传文件</el-button>
1
2
3
2
3
javaScript:
handleUploadFile(){
this.$refs.file.click()
}
1
2
3
4
2
3
4
# 3. 由于发送ajax请求,带文件过去文件会变成文档的字符节流
# 4. 所以会用到FormData来完成上传
handleImport() {
let formData = new FormData()
formData.append('devices', this.file)
this.$api.asset.importDevice(formData).then(response => {
if (response.success) {
// 判断成功
this.$message.success('导入成功')
} else {
// 判断失败
this.$message.error(response.message)
}
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13