【发布时间】:2022-12-15 04:13:36
【问题描述】:
我正在尝试将图像从react-native 应用程序上传到express.js 服务器,但我不知道如何使用express-fileupload 来完成。
在应用程序中,我创建了 FormData 实例并将上传的图像数据附加到数据中。附加后,我尝试将数据发送到我的express.js服务器,但我在req.body而不是req.files中收到profilePic。
如果我尝试从react.js 应用程序上传图像,那么我将在req.files 中获取图像。
反应本机代码:
let profilePicData = null;
const formData = new FormData();
const formDataAppend = (
bio,
profession,
linkedinProfileLink,
instagramProfileLink,
twitterProfileLink,
otherProfileLink,
profilePic,
) => {
console.log("profilePicData inf:", profilePicData);
formData.append("name", name);
formData.append("email", email);
formData.append("bio", bio);
formData.append("profession", profession);
formData.append("linkedinProfileLink", linkedinProfileLink);
formData.append("instagramProfileLink", instagramProfileLink);
formData.append("twitterProfileLink", twitterProfileLink);
formData.append("otherProfileLink", otherProfileLink);
formData.append("profilePic", profilePicData);
};
const handleSubmitButton = async (
bio,
profession,
linkedinProfileLink,
instagramProfileLink,
twitterProfileLink,
otherProfileLink,
) => {
try {
setLoading(true);
const apiHeaders = {
"User-Agent":
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0",
Accept: "multipart/form-data",
token: token,
};
formDataAppend(
bio,
profession,
linkedinProfileLink,
instagramProfileLink,
twitterProfileLink,
otherProfileLink,
);
console.log(formData);
await axios
.post(`${baseUrl}/api/users`, formData, {
headers: apiHeaders,
})
.then((res) => {
console.log(res);
setLoading(false);
navigation.replace("HomeScreen");
})
.catch((err) => {
console.log(err);
});
setLoading(false);
} catch (err) {
setError(err);
setLoading(false);
}
};
async function handleChoosePhoto() {
const options = {
noData: true,
};
await launchImageLibrary(options, (response) => {
if (response) {
profilePicData = {
uri: response.assets[0].uri.replace("file://", ""),
type: response.assets[0].type,
name: response.assets[0].fileName,
};
setProfilePic(profilePicData.uri);
console.log("profilePicData", profilePicData);
}
});
}
我可以使用express-fileupload上传图片吗?因为我可以在react.js中使用它来上传图片,但在react-native中我不能这样做。我可以使用express-fileupload还是应该使用multer?
【问题讨论】:
标签: node.js reactjs react-native express express-fileupload