我目前正在从事一个有角度的项目,在该项目中,用户通过将文件拖放到指定区域来上传文件。然后,我想将文件内容发送到后端以将其存储在mongo中。不幸的是,它发送的是文件名,但内容没有。我曾尝试使用FileReader()读取文件的内容,但无法使其正常工作。关于什么是读取文件内容的最佳/最简便方法的任何想法?
我希望能够将内容存储到变量中,而不仅仅是console.log()。我认为这将使发布该帖子更加容易,但是欢迎所有建议。谢谢!
注意:为了简化起见,我只添加了一些我认为可以完成逻辑的代码,但如果有帮助,我可以添加更多内容。
@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)
}
}
您不应该阅读文件的内容。您应该将文件作为表单数据附加到requestbody中并发送。如果您仍然想阅读它,可以使用一些库将该文件转换为json对象。要直接发送文件,请参考以下代码:-
const formData = new FormData();
formData.append('file', file.data);
this.httpClient.post<any>(this.SERVER_URL, formData).subscribe();