如何以角度读取上传文件的内容?

问题描述 投票:0回答:1

我目前正在从事一个有角度的项目,在该项目中,用户通过将文件拖放到指定区域来上传文件。然后,我想将文件内容发送到后端以将其存储在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)
    }

  }
angular file angular2-forms filereader angular2-directives
1个回答
0
投票

您不应该阅读文件的内容。您应该将文件作为表单数据附加到requestbody中并发送。如果您仍然想阅读它,可以使用一些库将该文件转换为json对象。要直接发送文件,请参考以下代码:-

const formData = new FormData();  
formData.append('file', file.data);  
this.httpClient.post<any>(this.SERVER_URL, formData).subscribe(); 
© www.soinside.com 2019 - 2024. All rights reserved.