React-Native FormData 文件请求作为 [object Object] 发送到服务器
React-Native FormData File Requests being sent to the server as [object Object]
我目前使用的是 React Native 0.48 和 react-native-image-crop-picker 0.16。
我正在尝试获取文件 uri,并使用 FormData 和 Fetch 将其发送到服务器。
这是我正在做的代码片段:
var image = await ImagePicker.openPicker({
width: 500,
height: 500,
cropping: true,
includeBase64: true,
});
var media = {
uri: image.path,
type: 'image/jpeg',
name: 'file.jpg',
};
var formData = new FormData();
formData.append("file", media);
fetch("https://requestb.in/1e6lgdo1", {
method: 'post',
headers: {
'Content-Type': 'multipart/form-data',
},
body: formData
}).then(function(r){
console.log("Success", r);
}).catch(function(e){
console.log("Error", e);
}).done();
不幸的是,当请求被发送到服务器而不是发送 "file" 表单数据字段中的文件内容时,它只是发送“[Object object]”。
根据您将请求发送到的位置,这会导致文件内容变为“[object Object]”或请求出错。
我无法确定这是我自己的代码的问题,还是 React Native 本身的问题。如有任何帮助,我们将不胜感激。
更新
我正在使用 https://github.com/jpillora/uploader 作为我的测试服务器。 (注意:Go 在对对象进行字符串化时从不使用符号 [object Object],所以我不认为问题出在服务器上。此外,我在将文件上传到 S3 时也看到了这一点。)
最终发出的请求示例是:
------WebKitFormBoundaryzt2jTR8Oh7dXB56z
Content-Disposition: form-data; name="file"
[object Object]
------WebKitFormBoundaryzt2jTR8Oh7dXB56z--
此问题与另一个包 React-Native Debugger 劫持获取请求有关,以便允许在调试器中进行检查。
有关解决方法的完整信息可在此处找到:https://github.com/jhen0409/react-native-debugger/issues/101
我能够通过返回 Google Chrome 调试器成功绕过它。
我目前使用的是 React Native 0.48 和 react-native-image-crop-picker 0.16。
我正在尝试获取文件 uri,并使用 FormData 和 Fetch 将其发送到服务器。
这是我正在做的代码片段:
var image = await ImagePicker.openPicker({
width: 500,
height: 500,
cropping: true,
includeBase64: true,
});
var media = {
uri: image.path,
type: 'image/jpeg',
name: 'file.jpg',
};
var formData = new FormData();
formData.append("file", media);
fetch("https://requestb.in/1e6lgdo1", {
method: 'post',
headers: {
'Content-Type': 'multipart/form-data',
},
body: formData
}).then(function(r){
console.log("Success", r);
}).catch(function(e){
console.log("Error", e);
}).done();
不幸的是,当请求被发送到服务器而不是发送 "file" 表单数据字段中的文件内容时,它只是发送“[Object object]”。
根据您将请求发送到的位置,这会导致文件内容变为“[object Object]”或请求出错。
我无法确定这是我自己的代码的问题,还是 React Native 本身的问题。如有任何帮助,我们将不胜感激。
更新
我正在使用 https://github.com/jpillora/uploader 作为我的测试服务器。 (注意:Go 在对对象进行字符串化时从不使用符号 [object Object],所以我不认为问题出在服务器上。此外,我在将文件上传到 S3 时也看到了这一点。)
最终发出的请求示例是:
------WebKitFormBoundaryzt2jTR8Oh7dXB56z
Content-Disposition: form-data; name="file"
[object Object]
------WebKitFormBoundaryzt2jTR8Oh7dXB56z--
此问题与另一个包 React-Native Debugger 劫持获取请求有关,以便允许在调试器中进行检查。
有关解决方法的完整信息可在此处找到:https://github.com/jhen0409/react-native-debugger/issues/101
我能够通过返回 Google Chrome 调试器成功绕过它。