从文件中读取内容并将内容发送到后端

时间:2018-07-26 13:02:39

标签: node.js reactjs express

我需要上传文件并在react.js中读取文件内容,然后将其内容发送到后端节点。 我创建了它,除了后端之外,它都起作用。从后端无法获取文件内容。

那是我所做的

    constructor(props) {
    super(props);
    this.onFormSubmit = this.onFormSubmit.bind(this);
    this.onChange = this.onChange.bind(this);
    this.fileUploadTest = this.fileUploadTest.bind(this);
  }

提交后,我调用fileUploadTest()函数

onFormSubmit(e){
    e.preventDefault(); // Stop form submit
    this.fileUploadTest(this.state.file);
  };

这是用于在上传文件(doc / pdf)时从输入文件中读取内容

onChange(e) {
    const self = this;
    const fileData = new FileReader();
    fileData.onload = function(e) {
      self.setState({
        file: e.target.result
      });
    };
    fileData.readAsText(e.target.files[0], "UTF-8");
  }

fileUploadTest = (file) => {
    Upload.fileUpload(file, data => {
      console.log(data);
    });
  };

和表格

<form onSubmit={this.onFormSubmit}>
  <h1>File Upload</h1>
  <input type="file" name="file" onChange={this.onChange} />
  <button type="submit">Upload</button>
 </form>

最后将内容发送回后端

function fileUpload(file, data){
 return fetch('upload', {
   mode: 'cors',
   method: "POST",
   body: file
 }).then(function (response) {
   console.log(response);
 }).catch(function(error){
   console.log(error);
 });
}

但是我无法在后端获取req.files。

app.post('/upload', (req, res) => {
  console.log(req);
  request.put({
    url: 'http://api....',
    body: req.body,
    headers: { 'accept': 'text/plain' }
  }, function (error, response, body) {
    console.log(body);
  });
})

我需要从上传的文件(.doc / .pdf)中读取内容并将其内容发送到服务器。我哪里错了怎么办?

0 个答案:

没有答案