React-Dropzone如何将每个文件转换为base64

use*_*410 0 reactjs react-dropzone

我正在使用 React-dropzone 插件进行文件上传。我担心如何将每个文件转换为 base64:

例如:

这是我获取文件的函数:我在这里为每个文件创建例如拇指并附加到对象。但是如何添加像base64string这样的item here prop:它会保留每个文件的base64数据?

this.onDrop = files => {
      files.map(file =>
        Object.assign(file, {
          preview: URL.createObjectURL(file),
        })
      );
    };
Run Code Online (Sandbox Code Playgroud)

小智 5

检查一下,您可以获得文件,然后可以将它们存储到状态实例的图像数组中。

onDropHandler = (files) => {
    files.map(file => {
        const reader = new FileReader();
        reader.onload = (event) => {
            //store result into your state array.
            this.setState(prevState => {
                const updatedImages = [...prevState.images, event.target.result];
                return {
                    images: updatedImages,
                }
            })
            console.log(event.target.result);
        };
        reader.readAsDataURL(file);
    });
}
Run Code Online (Sandbox Code Playgroud)