React Native IOS应用程序,想上传图片;从设备。 RN 0.39.2
客户端:
const formData = new FormData()
formData.append('files', file)
formData.append('type', 'image')
fetch(API_HOST+UPLOAD_AVATAR,{
method:'post',
headers: {'Content-Type':'multipart/form-data;boundary=6ff46e0b6b5148d984f148b6542e5a5d','Authorization': 'Bearer'+' '+token},
body: formData
})
.then(response=>response.json())
.then(data=>{
//console.log(data)
//Alert.alert(data)
})
.catch(error=>{
console.log(error)
})
服务器:
var multer = require('multer');
var upload = multer();
router.post('/user', ensureAuthenticated, upload.any(), function (req, res) {
console.log(req.body);
console.log(req.files);
})
错误:
服务器req.body和req.files为空。
然后我尝试使用RNFetchBlob。
RNFetchBlob.fetch('POST', API_HOST+UPLOAD_AVATAR, {
'Content-Type':'multipart/form-data;boundary=6ff46e0b6b5148d984f148b6542e5a5d'
'Authorization' : 'Bearer'+' '+token
}, formData)
.then((resp) => {
}).catch((err) => {
// ...
})
然后错误更改为
NSMutableDictionary无法转换为NSString。
req.body是{},req.files未定义
答案 0 :(得分:0)
我认为您找到了解决方案,如果可以,可以分享吗? 无论如何,对于RNFetchBlob问题,我曾经得到相同的错误,并且通过将FormData更改为数组来解决。像这样:
const body = [{
name: 'data',
data: JSON.stringify(whateverData)
}, {
name: 'file',
data: filePath,
}];
…
RNFetchBlob.fetch('POST', apiEndpoint, headers, body);
希望有帮助。