我的目标是将照片从本地设备发送到服务器。
我曾经import { launchImageLibrary } from "react-native-image-picker";
选择过一种photo
叫做
const resp = await fetch(photo.uri);
const blob = resp.blob();
formData.append('regPhoto', blob);
registerUser(formData);
将其作为 blob 附加到表单数据中。我检查了 await fetch 调用是否返回了有意义的数据,并返回了 200。然后使用 XMLHttpRequest API 发送了此 formData:
function registerUser(formData: FormData) {
cl("registerUser");
return new Promise((resolve) => {
const xhr = new XMLHttpRequest();
xhr.open("POST", url + "registerUser");
xhr.onreadystatechange = () => {
const resObj = onReadyStateChange(xhr);
if (resObj) {
resolve(resObj);
}
};
xhr.send(formData);
});
}
发生了两件事,服务器接收没有图像的请求并在没有图像的情况下处理它。这在某种程度上是成功的。同时,客户端(Android 模拟器)有一个 JSON 响应,内容为:无法识别的表单数据部分。我不确定这实际上来自哪里。
有人知道这里发生了什么吗?我只是想通过 formData 将图像上传到我的服务器。
我尝试了其他方法将照片附加到 formData 但出现同样的错误。
首先,确保您已准备好要上传的图像文件。通常,您可以使用以下库从用户的设备获取此图像
react-native-image-picker
。npm install axios
或者yarn add axios