如何读取angular中上传文件的内容?
How to read the content of an uploaded file in angular?
我目前正在开发一个 angular 项目,在该项目中,用户通过将文件拖放到指定区域来上传文件。然后,我想将文件内容发送到后端存储在mongo中。不幸的是,它发送的是文件名,但内容不是。我尝试使用 FileReader() 读取文件的内容,但我无法让它工作。关于读取文件内容的 best/easiest 方式有什么想法吗?
我希望能够将内容存储到一个变量中,而不仅仅是 console.log()。我认为这会让 post 更容易,但欢迎所有建议。谢谢!
注意:为了缩短这段时间,我只在我认为可以完成逻辑的地方添加了这段代码,但如果有帮助,我可以添加更多内容。
@HostListener('drop', ['$event']) public ondrop(evt) {
evt.preventDefault();
evt.stopPropagation();
this.background = '#f5fcff'
this.opacity = '1'
let files = evt.dataTransfer.files;
// I tried to read the file content here trying to do reader.readAsText(files); but it did not work
if (files.length > 0) {
this.onFileDropped.emit(files)
}
}
您不应该阅读文件内容。您应该将文件作为表单数据附加到请求体中并发送。如果您仍想阅读它,可以使用一些库将该文件转换为 json 对象。对于直接发送文件,请参考下面的代码:-
const formData = new FormData();
formData.append('file', file.data);
this.httpClient.post<any>(this.SERVER_URL, formData).subscribe();
我目前正在开发一个 angular 项目,在该项目中,用户通过将文件拖放到指定区域来上传文件。然后,我想将文件内容发送到后端存储在mongo中。不幸的是,它发送的是文件名,但内容不是。我尝试使用 FileReader() 读取文件的内容,但我无法让它工作。关于读取文件内容的 best/easiest 方式有什么想法吗?
我希望能够将内容存储到一个变量中,而不仅仅是 console.log()。我认为这会让 post 更容易,但欢迎所有建议。谢谢!
注意:为了缩短这段时间,我只在我认为可以完成逻辑的地方添加了这段代码,但如果有帮助,我可以添加更多内容。
@HostListener('drop', ['$event']) public ondrop(evt) {
evt.preventDefault();
evt.stopPropagation();
this.background = '#f5fcff'
this.opacity = '1'
let files = evt.dataTransfer.files;
// I tried to read the file content here trying to do reader.readAsText(files); but it did not work
if (files.length > 0) {
this.onFileDropped.emit(files)
}
}
您不应该阅读文件内容。您应该将文件作为表单数据附加到请求体中并发送。如果您仍想阅读它,可以使用一些库将该文件转换为 json 对象。对于直接发送文件,请参考下面的代码:-
const formData = new FormData();
formData.append('file', file.data);
this.httpClient.post<any>(this.SERVER_URL, formData).subscribe();