普通网络请求参数是JSON对象 图片上传的请求参数使用的是formData对象
使用fetch上传图片代码封装如下:
const common_url
= 'http://192.168.1.1:8080/';
const token
= '';
function uploadImage(url
, params
){
return new Promise(function (resolve
, reject
) {
let formData
= new FormData();
for (var key
in params
){
formData
.append(key
, params
[key
]);
}
let file
= {uri
: params
.path
, type
: 'application/octet-stream', name
: 'image.jpg'};
formData
.append("file", file
);
fetch(common_url
+ url
, {
method
: 'POST',
headers
: {
'Content-Type': 'multipart/form-data;charset=utf-8',
"x-access-token": token
,
},
body
: formData
,
}).then((response
) => response
.json())
.then((responseData
)=> {
console
.log('uploadImage', responseData
);
resolve(responseData
);
})
.catch((err
)=> {
console
.log('err', err
);
reject(err
);
});
});
}
使用方法
let params
= {
userId
:'1',
path
:'file:///storage/emulated/0/Pictures/image.jpg'
}
uploadImage('app/uploadFile', params
)
.then( res
=>{
if(res
.header
.statusCode
=== 'success'){
upLoadImgUrl
= res
.body
.imgurl
;
}else{
console
.log(res
.header
.msgArray
[0].desc
);
}
}).catch( err
=> {
console
.log('uploadImage', err
.message
);
})
注意:由于后台服务器配置的不同, let file = {uri: params.path, type: 'application/octet-stream', name: 'image.jpg'}中的type也可能是multipart/form-data formData.append("file", file)中的的file字段也可能是images