React Native fench FormData 上传文件

首先说下这个问题很坑,append的Js的object类型无效,我们后台用的是java
上错不成功的代码

let url = 'http://192.168.1.120:8090/app/release';
        let params = {parentId: "0", text: this.state.textContent, postType: 0, profitType: 0}

        let formdata = new FormData();
        formdata.append('file', {uri: this.state.envURL[0].uri, type: 'image/jpg', name: 'image.jpg'});
        formdata.append('appUserPost', String(params));

        fetch(url, {
            method: 'post',
            headers: {
                'Content-Type': 'multipart/form-data; boundary=6ff46e0b6b5148d984f148b6542e5a5d',
            },
            body: formdata
        }).then(response => {
            console.log("image uploaded")
        }).catch(err => {
            console.log(err)
        })

正确的是拆分object
成功的代码

let url = 'http://192.168.0.89:8080/app/release';

        var appUserPost = { 'appUserPost': params, type: 'application/octet-stream' }
        var file = { uri: this.state.envURL, type: 'multipart/form-data', name: 'image.png' }
        let formdata = new FormData();

        formdata.append('file', file); // you can append anyone.

        formdata.append('parentId', "0")
        formdata.append('text', "asdfasd")
        formdata.append('postType', 0)
        formdata.append('profitType', 1)
        console.log("formdata", JSON.stringify(formdata))

        fetch(url, {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                // 'Content-Type': 'multipart/form-data',
            },
            processData: false,
            contentType: false,
            body: formdata
        }).then(function (response) {
            console.log(response)
        }).catch(err => {
            console.log(err)
        })


    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值