我想在react js中读取上传文件的内容(文件扩展名不同,可能是.txt、.docx、.pdf(。我的代码在下面。现在我正在使用ReactFileReader组件。在我的编码中,它只能读取txt文件的内容。它无法读取pdf、docx的内容。如何解决。请帮我。谢谢。
import React, { Component } from "react";
import ReactFileReader from 'react-file-reader';
class DisplayController extends Component {
constructor(props){
super(props)
this.state = {
value: '',
file : ""
}
}
handleFiles = files => {
let reader = new FileReader();
reader.onload = function () {
alert("Read Data : " + reader.result)
}
reader.readAsText(files[0])
}
render() {
return (
<form>
<div className="files">
<ReactFileReader fileTypes={['.pdf','.txt','.docx']} handleFiles={this.handleFiles}>
<button className='btn'>Upload</button>
</ReactFileReader>
</div>
</form>
)
}
}
export default DisplayController;
读取docx文件的内容非常复杂,但并非不可能:该文件是一个.zip文件,其中包含许多其他文件,这些文件反过来包含描述文件内容的XML标记。但这通常不会在浏览器中完成,因为默认情况下,浏览器中没有提供所需的工具。你可能需要几十个额外的库来处理这个问题。类似的事情可能应该在服务器上完成。
然而,阅读pdf的内容几乎是完全不可能的。pdf可以采用多种形式,在最坏的情况下,它没有嵌入字符串字符,而是嵌入字形或字符的小图像,以及每个字符的坐标。除非你知道pdf创建的确切工具,并且知道它的文件在内部的外观,否则将其解析为文本是不可行的。你可以调查使用一个组件来向你的用户显示pdf,如果这与你的用例相匹配的话。这应该是可能的。