首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用react-dropzone读取文件内容?

如何使用react-dropzone读取文件内容?
EN

Stack Overflow用户
提问于 2018-12-21 15:21:23
回答 1查看 5.8K关注 0票数 5

我正在尝试学习更多关于为即将到来的项目处理文件的知识。有没有办法让react-dropzone在onDrop改变我上传的文件内容时运行一个函数?例如,如果我上传了一个word文档,上面写着"Hi everybody“,我该如何将内容更改为"Hi Dr.Nick”?

在尝试进行更改之前,我已经尝试过在之后使用filereader api访问数据。我试着在async函数的大括号后面使用filereader,但没能让它工作。

代码语言:javascript
复制
import React from 'react';
import Dropzone from 'react-dropzone';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';

const FileUpload = ({
    children, disableClick, channelId, mutate, style = {},
}) => (
    <Dropzone
        style={style}
        className="ignore"
        onDrop={async ([file]) => {
            const response = await mutate({
                variables: {
                    channelId,
                    file,
                },
            });
            console.log(response);
        }}
        disableClick={disableClick}
    >
        {children}
    </Dropzone>
);

const createFileMessageMutation = gql`
  mutation($channelId: Int!, $file: File) {
    createMessage(channelId: $channelId, file: $file)
  }
`;

export default graphql(createFileMessageMutation)(FileUpload);

任何关于如何访问和修改文件内容的想法都是非常感谢的!谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-21 15:37:22

代码语言:javascript
复制
onDrop={async ([file]) => {
  var reader = new FileReader();
  reader.onload = function(e) {
    var contents = e.target.result;
    displayContents(contents);
  };
  reader.readAsText(file);
}}

你可以在前端做的是读取文件内容并显示它,所有对文件内容的操作都应该在服务器端完成。使用ajax将您的文件推送到您的服务器,其中包含您想要更改的信息列表,例如在nodeJS fs = require('fs')中用来进行文件修改。

另外,请访问这篇文章,我看到一些人为你的问题提供了一些解决方案:

Is it possible to write data to file using only JavaScript?

这是一个取自上面链接的小提琴:http://jsfiddle.net/o4rhg1xe/1/

总之,您可以使用我提供的代码读取文本文件内容,然后使用链接中的方法创建包含所需内容的Blob对象,这样的文件可以通过浏览器下载(参见小提琴)

在我看来,文件修改应该移到后端,而且我看不出有什么用处可以让它们在前端。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53880713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档