使用react-base64上传图片时出现postMessage validation failed错误

postMessage validation failed error occurring during image upload using react-base64

我正在上传图片并将其保存到 mongodb,但它显示以下错误:

message: "postMessage validation failed: selectedFile: Cast

name: "ValidationError"

_message: "postMessage validation failed"

我在前端使用react-base64上传图片

<FileBase type="file" multiple={false} onDone={(base64) => setPostData({ ...postData, selectedFile: base64})} />

我正在通过获取将其添加到数据库中:

let handleSubmit = (event) => {
        event.preventDefault();
        console.log(postData);
        fetch(`http://localhost:5000/posts/create`, {
            method: 'POST',
            mode: 'cors',
            headers: {
                'Content-Type': 'application/json',
                // 'Accept': 'application/json'
            },
            body: JSON.stringify(postData),
        })
        .then(response => response.json())
        .then((dataFromServer) => {
            console.info(dataFromServer);
        })
        .catch(error => console.error(error));

    }

任何人都可以告诉我我做错了什么以及我该如何解决这个问题

在FileBase组件中,需要这样操作。

您需要解构 onDone 上的参数。这样onDone={({base64}) => yourFunction()}

你可以用这个。

<FileBase type="file" multiple={false} onDone={({base64}) => setPostData({ ...postData, selectedFile: base64})} />