(react admin) 如何以二进制格式上传图片?

问题描述

我通常使用 axios 和 postman 上传图像,它们无需额外配置即可工作。 我只是将图像文件附加到表单数据并发送它,服务器正确检测它并保存它。 但是,使用 react admin,我以原始格式获取它,如果我尝试上传它,则服务器无法正确检测到它。 我如何在不弄乱它们的情况下使反应管理员上传图像。 我只想以与 fetch 或 axios 使用的格式相同的格式上传图像。 当我使用 axios 在 chrome 中检查网络工具时,文件字段的类型为二进制,但是 react admin 显示一个具有 rawFile 字段的对象,如果我尝试发送 rawfile 字段,则它不起作用。

解决方法

在我的 DatProvider 中,它是这样完成的:

case CREATE:
  options.method = 'POST'
  
  if (resource === 'photos') {
    const { file,...model } = params.data
    let form = new FormData()

    if (file && file.rawFile) {
      form.append('file',file.rawFile) 
    }
  
    options.body = form
  }