读取文件并解析其内容
Read a file and parse its content
我有文件上传控件,其中包含 selected 文件,如下所示,
<div class="Block">
<label id="lbl">File </label>
<input #fileInput type='file'/>
</div>
我有一个提交按钮如下,
<button type="button" class="btn btn-primary"
(click)="uploadDocument()">Upload File</button>
当我 select 一个文件并单击文件上传按钮时,我需要文件中的内容而不将其发送到服务器并从那里读取。
注意:文件类型将为 csv
您可以在 javascript 中使用 FileReader
作为 csv
文件来实现此目的
添加文件更改事件以将文件存储在如下对象中,
<div class="Block">
<label id="lbl">Code </label>
<input type='file' (change)="fileChanged($event)">
</div>
该函数应将文件设置为稍后使用的对象
file:any;
fileChanged(e) {
this.file = e.target.files[0];
}
点击提交按钮后可以使用javascript中FileReader
的readAsText()
方法得到如下内容,
uploadDocument(file) {
let fileReader = new FileReader();
fileReader.onload = (e) => {
console.log(fileReader.result);
}
fileReader.readAsText(this.file);
}
注意:onload
事件将在读取内容后触发,因此您的逻辑应该在 onLoad
函数内。
您从输入中提取文件并使用 FileReader API
readFile(file: File) {
var reader = new FileReader();
reader.onload = () => {
console.log(reader.result);
};
reader.readAsText(file);
}
对于那些在阅读后询问如何获取字符串数据的人,数据在fileReader
的result
属性中。检查下面的代码示例。
let fileString:any= "";
uploadDocument(file) {
let fileReader = new FileReader();
fileReader.onloadend = (e) => {
//console.log(myReader.result);
// Entire file
console.log(myReader.result);
// By lines
var lines = myReader.result.split('\n');
for(var line = 0; line < lines.length; line++){
console.log(lines[line]);
}
this.fileString = myReader.result;
};
fileReader.readAsText(this.file);
}
如果你想把它变成函数你可以
readFileContent(file: File): Promise<string> {
return new Promise<string>((resolve, reject) => {
if (!file) {
resolve('');
}
const reader = new FileReader();
reader.onload = (e) => {
const text = reader.result.toString();
resolve(text);
};
reader.readAsText(file);
});
}
然后
const fileContent = await readFileContent(file);
it works, try like this..
var reader = new FileReader();
reader.onloadend =(e) =>{
var result = reader.result;
console.log(i+'/'+result)
this.file64.push(result)
};
reader.readAsDataURL(file);
我有文件上传控件,其中包含 selected 文件,如下所示,
<div class="Block">
<label id="lbl">File </label>
<input #fileInput type='file'/>
</div>
我有一个提交按钮如下,
<button type="button" class="btn btn-primary"
(click)="uploadDocument()">Upload File</button>
当我 select 一个文件并单击文件上传按钮时,我需要文件中的内容而不将其发送到服务器并从那里读取。
注意:文件类型将为 csv
您可以在 javascript 中使用 FileReader
作为 csv
文件来实现此目的
添加文件更改事件以将文件存储在如下对象中,
<div class="Block">
<label id="lbl">Code </label>
<input type='file' (change)="fileChanged($event)">
</div>
该函数应将文件设置为稍后使用的对象
file:any;
fileChanged(e) {
this.file = e.target.files[0];
}
点击提交按钮后可以使用javascript中FileReader
的readAsText()
方法得到如下内容,
uploadDocument(file) {
let fileReader = new FileReader();
fileReader.onload = (e) => {
console.log(fileReader.result);
}
fileReader.readAsText(this.file);
}
注意:onload
事件将在读取内容后触发,因此您的逻辑应该在 onLoad
函数内。
您从输入中提取文件并使用 FileReader API
readFile(file: File) {
var reader = new FileReader();
reader.onload = () => {
console.log(reader.result);
};
reader.readAsText(file);
}
对于那些在阅读后询问如何获取字符串数据的人,数据在fileReader
的result
属性中。检查下面的代码示例。
let fileString:any= "";
uploadDocument(file) {
let fileReader = new FileReader();
fileReader.onloadend = (e) => {
//console.log(myReader.result);
// Entire file
console.log(myReader.result);
// By lines
var lines = myReader.result.split('\n');
for(var line = 0; line < lines.length; line++){
console.log(lines[line]);
}
this.fileString = myReader.result;
};
fileReader.readAsText(this.file);
}
如果你想把它变成函数你可以
readFileContent(file: File): Promise<string> {
return new Promise<string>((resolve, reject) => {
if (!file) {
resolve('');
}
const reader = new FileReader();
reader.onload = (e) => {
const text = reader.result.toString();
resolve(text);
};
reader.readAsText(file);
});
}
然后
const fileContent = await readFileContent(file);
it works, try like this..
var reader = new FileReader();
reader.onloadend =(e) =>{
var result = reader.result;
console.log(i+'/'+result)
this.file64.push(result)
};
reader.readAsDataURL(file);