Reactjs 如何在React中从本地上传文件?

Reactjs 如何在React中从本地上传文件?,reactjs,filereader,Reactjs,Filereader,我尝试使用Filereader Html5 API,但在react中,它需要一个npm模块,Filereader对应的npm模块工作不正常,文件上传后显示错误。如果不执行require('Filereader'),webpack将显示错误 对于npm模块,Filereader显示:“未捕获错误:无法读取为文件:{“预览”:“blob:http%3A//dev.myntra.com%3A3000/cfb8a917-b3df-46b2-b055-21da34f253f2”}” 我是否可以使用其他np

我尝试使用Filereader Html5 API,但在react中,它需要一个npm模块,Filereader对应的npm模块工作不正常,文件上传后显示错误。如果不执行require('Filereader'),webpack将显示错误

对于npm模块,Filereader显示:“未捕获错误:无法读取为文件:{“预览”:“blob:http%3A//dev.myntra.com%3A3000/cfb8a917-b3df-46b2-b055-21da34f253f2”}” 我是否可以使用其他npm模块来处理此类文件,或者是否可以直接从react使用Filereader API? 这是我的代码:

{
onDrop(files) {
  this.setState({
    files: files

  });
  console.log(files[0]);
  var reader = new FileReader();

  var contents;

   reader.onload = function(event) {

     contents = this.result;

     console.log(contents);

      $.ajax({
      type: 'POST',
      url: '/api/csv',
      async: true,
      data: json,
      crossDomain: true,
      contentType: "application/json; charset=utf-8",
      processData: false,
      timeout:5000,
      success: function(response){
        console.log("success");
      },
      error: function(jqXHR, textStatus){
        console.log("error");
        }            

      });

   }
        reader.readAsText(files[0],'utf8');



}




render() {
  return (
    <div>
    <Dropzone onDrop={this.onDrop}>
    <div>Try dropping some files here, or click to select files to upload.</div>
    </Dropzone>
    </div>
    );
}
}
{
onDrop(文件){
这是我的国家({
文件:文件
});
console.log(文件[0]);
var reader=new FileReader();
var含量;
reader.onload=函数(事件){
contents=this.result;
控制台日志(内容);
$.ajax({
键入:“POST”,
url:“/api/csv”,
async:true,
数据:json,
跨域:是的,
contentType:“应用程序/json;字符集=utf-8”,
processData:false,
超时:5000,
成功:功能(响应){
控制台日志(“成功”);
},
错误:函数(jqXHR,textStatus){
控制台日志(“错误”);
}            
});
}
reader.readAsText(文件[0],'utf8');
}
render(){
返回(
尝试在此处删除一些文件,或单击以选择要上载的文件。
);
}
}

使用window.FileReader解决了这个问题,通过它,我可以访问html5的FileReader API,而无需使用任何npm包