我想在本机中将图像作为文件发送到服务器。我怎样才能做到这一点? 这是我的代码:-
export const editUserProfile = (sessionId,firstName,lastName,image,countryCode,phone) =>
new Promise((resolve,reject) => {
const form = new FormData();
form.append('image',{
uri : image,
type : 'image/jpeg',
name : 'image.jpg'
})
return axios.post(base_url+'edit-profile',{
session_id : sessionId,
firstname : firstName,
lastname : lastName,
image : null,
country_code : countryCode,
phone : phone,
locale : 'en'
}).then(response =>
{resolve(response)})
.catch(error =>
{reject(error)});
});
答案 0 :(得分:2)
//edit user profile
export const editUserProfile =
(sessionId,firstName,lastName,image,countryCode,phone) =>
new Promise((resolve,reject) => {
var data = new FormData();
data.append('session_id',sessionId);
data.append('firstname',firstName);
data.append('lastname',lastName);
data.append('image',
{uri:image,name:'userProfile.jpg',type:'image/jpg'});
data.append('country_code',countryCode);
data.append('phone',phone);
data.append('locale','en');
return axios.post(base_url+'edit-profile',data).then(response =>
{resolve(response)})
.catch(error =>
{reject(error)});
});
答案 1 :(得分:1)
浪费了一整天后,我才找到解决方案。 首先找到图像的文件路径。我的就是这个。
file:///storage/emulated/0/Pictures/f5ca988c-882d-4b5e-86bb-b47939909b09.jpg
从此更改为
file://storage/emulated/0/Pictures/f5ca988c-882d-4b5e-86bb-b47939909b09.jpg 有效 :)。只需删除第三个反斜杠即可。
答案 2 :(得分:0)
我在这个问题上也停留了一周。经过研究,我发现我们正在从RN向服务器发送超过10MB的文件,而这些文件将无法到达服务器。您可以调整图像大小并发送到服务器。这个包裹对我有帮助。 https://github.com/bamlab/react-native-image-resizer