Javascript 如何在Reactjs中创建文件选择器&;然后把文件打印出来
我是个新手&我正在用它做一个个人项目 我目前正在尝试实现一个功能,允许用户单击一个按钮,将他们带到他们的文件浏览器&让他们选择一个文件(只是一个标准的文件选择器) 问题:Javascript 如何在Reactjs中创建文件选择器&;然后把文件打印出来,javascript,html,reactjs,file,react-native,Javascript,Html,Reactjs,File,React Native,我是个新手&我正在用它做一个个人项目 我目前正在尝试实现一个功能,允许用户单击一个按钮,将他们带到他们的文件浏览器&让他们选择一个文件(只是一个标准的文件选择器) 问题:我找不到一个真正有意义的好的React包/库。我评估的每个选项对我来说都毫无意义,因此我不想使用它 目前,我有一个按钮,允许我选择一个文件,但我试图找出如何获得文件的名称,然后打印出文件 我的代码: import { FilePicker } from 'react-file-picker'; MyComponent = ()
我找不到一个真正有意义的好的React包/库。我评估的每个选项对我来说都毫无意义,因此我不想使用它 目前,我有一个按钮,允许我选择一个文件,但我试图找出如何获得文件的名称,然后打印出文件 我的代码:
import { FilePicker } from 'react-file-picker';
MyComponent = () => (
<FilePicker
extensions={['.docx']}
// onChange={FileObject => ()}
// onError={errMsg => ()}
>
<Button style={{backgroundColor: "#f57505", width: "75px"}}>Upload</Button>
</FilePicker>
)
从'react file picker'导入{FilePicker};
MyComponent=()=>(
()}
//onError={errMsg=>()}
>
上传
)
谢谢强> 如何获取文件名 FileObject返回一个文件类型。这意味着您可以通过执行FileObject.name来获取文件名 然后把文件打印出来 您需要这样的第三方库: 这里有一个工作示例:
import React, { Component } from "react";
import { FilePicker } from "react-file-picker";
import { render } from "react-dom";
import mammoth from "mammoth";
class App extends Component {
constructor() {
super();
this.state = {
title: "",
text: ""
};
}
extractWordRawText = arrayBuffer => {
mammoth
.extractRawText({ arrayBuffer })
.then(result => {
const text = result.value; // The raw text
const messages = result.messages; // Please handle messages
this.setState({ text });
})
.done();
};
handleFileChange = file => {
const reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = e => {
this.extractWordRawText(e.target.result);
};
this.setState({ title: file.name });
};
render() {
const { title, text } = this.state;
return (
<div>
<h1>{title}</h1>
<p>{text}</p>
<FilePicker
extensions={["docx"]} // Notice that I removed the "."
onChange={this.handleFileChange}
onError={errMsg => console.log(errMsg)} // Please handle error
>
<button style={{ backgroundColor: "#f57505", width: "75px" }}>
Upload
</button>
</FilePicker>
</div>
);
}
}
render(<App />, document.getElementById("root"));
import React,{Component}来自“React”;
从“react file picker”导入{FilePicker};
从“react dom”导入{render};
从“猛犸”进口猛犸;
类应用程序扩展组件{
构造函数(){
超级();
此.state={
标题:“,
案文:“”
};
}
extractWordRawText=arrayBuffer=>{
猛犸象
.extractRawText({arrayBuffer})
。然后(结果=>{
const text=result.value;//原始文本
const messages=result.messages;//请处理消息
this.setState({text});
})
.完成();
};
handleFileChange=文件=>{
const reader=new FileReader();
reader.readAsArrayBuffer(文件);
reader.onload=e=>{
this.extractWordRawText(即target.result);
};
this.setState({title:file.name});
};
render(){
const{title,text}=this.state;
返回(
{title}
{text}
console.log(errMsg)}//请处理错误
>
上传
);
}
}
render(,document.getElementById(“根”));
希望能有帮助。愉快的编码。是的,我是说我想得到文件,然后打印出文件的实际文字。如果我传入一个文件,上面写着“你好”,我想在我的页面上打印“你好”,好吧,我知道你在获取文件名方面说了些什么,但是我需要什么实际代码才能在网页上打印它?我尝试过:FilePicker extensions={['.docx']}onChange={FileObject=>({FileObject.name})}//onError={errMsg=>()}>Upload@coder\u coder123我只是用一个完整的工作示例编辑了我的文章。它提取word文档中的原始文本。我认为这是你们项目的良好开端。祝你好运