使用 axios 将本机表单数据与其中的对象和文件反应

Posted

技术标签:

【中文标题】使用 axios 将本机表单数据与其中的对象和文件反应【英文标题】:react native post form data with object and file in it using axios 【发布时间】:2019-10-07 16:06:06 【问题描述】:

所以我想上传 对象作为数据 并作为注释归档 使用axios转api

uploadToServer= () => 
    const file =this.state.photo

  let data2 =sale_id:1,
            note_type_id:4,
            description:"test",
            note_content_item:" hi from broker hub"
            
            



let data = new FormData()
data.append('data[sale_id]', '1')
data.append('data[note_type_id]', '4')

data.append('data[description]', "test")

data.append('data[note_content_item]', "test")







console.log(data)


axios(
  url: api',
  method: 'POST',
  data: data,
  headers: 
   
            'Content-Type' : 'multipart/form-data',
          'Authorization':'Basic YnJva2VyOmJyb2tlcl8xMjM='

  
)
        .then(resp => console.log(resp.data.response))
        .catch(error => console.error(error)); 

首先我尝试使用没有注意的数据,我可以在邮递员中完成

但是我的代码出错了

消息:“无法保存文件” response_code: 10

仅当我将密钥从数据更改为其他内容时才会出现此错误

【问题讨论】:

【参考方案1】:

你没有正确构建FormData,试试这个:

let data = sale_id:1,
                note_type_id:4,
                description:"test",
                note_content_item:" hi from broker hub"            
                
const formData = new FormData();
formData.append('data', JSON.stringify(data));
formData.append('Note', 
                     uri: "file://" //Your Image File Path
                    type: 'image/jpeg', 
                    name: "imagename.jpg",
                  );
axios(
       url    : api,
       method : 'POST',
       data   : formData,
       headers: 
                    Accept: 'application/json',
                    'Content-Type': 'multipart/form-data',
                    'Authorization':'Basic YnJva2VyOmJyb2tlcl8xMjM='
                
            )
            .then(function (response) 
                    console.log("response :", response);
           )
           .catch(function (error) 
                    console.log("error from image :");
           )

【讨论】:

即使我采用相同的方法,但它对我不起作用。 @bubble-cord 您遇到了什么错误/问题,分享您的代码以便了解您的问题。 我使用相同的代码,但无法从图像中获取错误:[错误:网络错误],请帮助,我已经浪费了太多时间,提前谢谢 请添加注释 FormData 来自 form-data 包,即来自 import FormData from 'form-data' 我一直在努力寻找正确的,因为默认的 FormData 指向 VS Code 应用程序的内部是不正确。

以上是关于使用 axios 将本机表单数据与其中的对象和文件反应的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Axios 将文件和数据一起发布?

使用表单数据和 axios 发送文件

如何使用 js 或 axios 将表单数据中的 url 作为文件发送

vue表单提交怎么写

使用 Axios 将对象从 React.js 发布到 PHP

React - 带有文件和字符串的 Axios POST 表单数据