在reactJS中使用“获取”上传文件

Var*_*ddu 0 file-upload fetch node.js reactjs multer

在reactjs中使用“获取”上传文件

我正在尝试使用ReactJS上传文件。

handleUploadfile = (event) => {
        event.preventDefault();
        const data = new FormData();
        data.append('photo',event.target.files[0] );
        data.append('name', 'Test Name');
        data.append('desc', 'Test description');
        fetch("http://localhost:3001/todo/upload", {
             method: 'POST',
             headers: {
                 'Accept': 'application/json',
                 'Content-Type': 'application/x-www-form-urlencoded'
             },
             body: data
        }).then((response) =>  {
           return response.text();
        })
    }
Run Code Online (Sandbox Code Playgroud)

由于某些原因,我无法使用以下命令读取nodejs(+ multer)服务器上的文件:

req.files

在后路由器显示“未定义”。

Var*_*ddu 5

最后我找到了解决方案

我必须从标头部分删除“ Content-Type”,并使用multer在nodejs中解决了这个问题。

使用“ multipart / form-data”

'Content-Type': 'multipart/form-data'

需要我们设置边界,因此会在nodejs上引发错误“错误:多部分:未找到边界”

使用“ application / x-www-form-urlencoded”

'Content-Type': 'application/x-www-form-urlencoded'

我正在填写req.body,但将其作为字符串,但是无法访问各个值。

因此,最终的解决方案是删除“ Content-Type”