validation - 如何验证导入的文件是否是 vue 中的 .csv 文件类型
问题描述
我创建了一个文件选择功能,允许用户选择.csv
文件。代码如下:
<input type="file" accept=".csv" ref="file" v-on:input="handleFileUpload()" id="upload-photo" />
这使用户能够浏览 .csv 文件,我的问题是,如果用户选择所有文件,则显示所有文件并且可以选择其他文件类型。
如何禁用所有文件选项或使用 vue.js 检查文件扩展名。以下是用户选择文件时的功能。
onConfirm() {
this.txtBrowse = this.file.name; //gets the file name with the extension
//other functionalities
}
更新
截至目前,我暂时使用了以下诱捕:
if(this.file.name.split(".").pop() != 'csv'){//check if file extension is csv
Vue.alert.show( "Please select CSV file type", "error");
return;
}
但是,如果您有更好的方法,请帮助我。
解决方案
我遇到了类似的情况,并通过以下方式解决了它。用于输入文件:
<input id="fileUpload" type="file" ref="inputFile" @input="setUploadFile()" hidden />
在 setUploadFile 函数内部:
setUploadFile(){
this.file = this.$refs.inputFile.files[0];
if (this.file.type == "text/csv"){
// Api call
}
else {
this.showAlert("error", "The file-type doesn't belong to text/csv")
}
}
推荐阅读
- python - 连接数据库中所有连接的关系表的好方法是什么?
- android - 如何将数据从 Fragment 发送到 Widget Provider?
- ios - 在 iOS 中显示键盘时无法滚动到视图底部
- python - 如何为带有 2 个独立笔记本的循环小部件?
- android - 如何使用 GSON 在 android 中将动态嵌套 JSON 转换为 JAVA 对象?
- java - 使用 jarsigner 重复条目 module-info.class 对 java 11 jar 进行签名
- boost - 使用从 brew 安装的 boost-python 和 boost 版本 1.59
- javascript - Google Cast Chrome Sender - 队列更改回调
- vue.js - 捕获父组件中子组件发出的事件的值
- javascript - 从 href 属性获取查询字符串参数