我尝试使用Filereader Html5 API,但作为反应,它需要一个npm模块,而Filereader的相应npm模块不能正常工作并在文件上传后显示错误。如果不执行require(' Filereader'),webpack会显示错误。
使用npm模块Filereader显示:"未捕获错误:无法读取为文件:{"预览":" blob:http%3A // dev.myntra.com%3A3000 / cfb8a917-b3df-46b2-b055-21da34f253f2"}" 我可以使用其他一些npm模块来处理这种文件,或者有什么方法可以直接使用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>
);
}
}
答案 0 :(得分:3)
使用window.FileReader解决了这个问题,通过这个我可以在不使用任何npm包的情况下访问html5的Filereader API。