这就是我尝试将图像作为multipart / form-data发布到服务器的方法。
$new_post = wp_insert_post($args);
但它显示错误:预期的动态类型字符串但有类型 对象
答案 0 :(得分:1)
正如docs formData.append(name, value, filename);
其中的value
字段接受USVString
或Blob
,因为您将object
传递给它,因此会引发错误。
您需要将image
转换为blob
,附加并上传。
如果你有图片的base64
,那么你可以使用blob
api
fetch
fetch(base64URL)
.then(res => res.blob())
.then(blob => console.log(blob))
否则,您可以结帐RN-fetch-blob,multipart/ formData
示例。
答案 1 :(得分:0)
两天后,尝试了很多事情,我让代码工作了一些修改。
RNFetchBlob.fetch('POST', url, {
'Content-Type': 'multipart/form-data',
}, [
{ name: 'file', filename: 'photo.jpg', type: 'image/png', data: RNFetchBlob.wrap(src) }
]) .then((resp) => {
console.log(resp.text());
}).catch((err) => {
console.log(err);
});
答案 2 :(得分:0)
我稍微修改了@ unknown123给出的解决方案。它为我工作。 这是解决方案。
首先,安装npm软件包rn-fetch-blob
从“ rn-fetch-blob”导入RNFetchBlob;
RNFetchBlob.fetch('PUT',url,{'Content-Type':'multipart / form-data'}, Platform.OS ==='ios'吗? RNFetchBlob.wrap(filePath): `RNFetchBlob-$ {filePath}`)
请注意,就我而言,IOS和Android设备具有不同的文件路径。我们使用rn-fetch-blob
以不同的方式处理它示例文件路径变量数据
“ /用户/ Niveditha /库/开发人员/ CoreSimulator / Devices / B41EB910-F22B-4236-8286-E6BA3EA75C70 / data /容器/数据/应用程序/ B88777C6-6B10-4095-AB67-BB11E045C1DE / tmp / react-native -image-crop-picker / img.jpg”
“ 文件:// /storage/emulated/0/Android/data/com.uploadcameraroll/files/Pictures/img.jpg”