vue实现上传.txt,加载.txt内容,并用input显示内容,上床的.txt文件不保存到服务器本地。加载的内容每一行做数组的一个值,每个值去除前后空格,为空的删除,最后保存到saveData里
时间: 2024-04-14 11:31:55 浏览: 242
下面是一个Vue.js的示例代码,用于实现上传.txt文件、加载文件内容并处理内容,然后将处理后的数据保存在`saveData`数组中:
```html
<template>
<div>
<input type="file" @change="handleFileUpload" accept=".txt">
<input v-model="fileContent" type="text">
<button @click="processFileContent">处理内容</button>
<div v-for="(item, index) in saveData" :key="index">{{ item }}</div>
</div>
</template>
<script>
export default {
data() {
return {
fileContent: '',
saveData: []
};
},
methods: {
handleFileUpload(event) {
const file = event.target.files[0];
if (file) {
const reader = new FileReader();
reader.onload = (e) => {
this.fileContent = e.target.result;
};
reader.readAsText(file);
}
},
processFileContent() {
if (this.fileContent) {
const lines = this.fileContent.split('\n');
this.saveData = lines.map(line => line.trim()).filter(line => line !== '');
}
}
}
};
</script>
```
在上述示例中,我们添加了一个 `<input type="text">` 元素和一个按钮来处理内容。当用户选择上传的.txt文件后,文件内容将显示在输入框中,用户可以对内容进行处理。
当用户点击 "处理内容" 按钮时,`processFileContent` 方法会被调用。在该方法中,我们首先使用 `split('\n')` 将文件内容按行分割成数组。然后,使用 `map` 方法对每一行进行处理,使用 `trim()` 去除前后空格。最后,使用 `filter` 方法过滤掉空行,并将处理后的数据保存在 `saveData` 数组中。
最后,我们使用 `v-for` 指令在页面上循环渲染 `saveData` 数组中的每个值。
请注意,这个示例假设上传的.txt文件是以换行符分隔的文本内容。如果文件内容的分隔符不是换行符,你需要相应地修改代码来处理内容。另外,这个示例只支持上传并处理单个.txt文件。如果需要支持多个文件上传或其他类型的文件,请根据需求进行相应的修改。
阅读全文