【发布时间】:2022-01-22 08:56:42
【问题描述】:
我对使用 React Native(在本例中为 Expo)和 Firebase 数据库非常陌生。
我的问题是,当我通过 Image Picker 在我的应用中上传图片时,链接是本地链接,所以只能用我的设备读取,然后在我清除缓存时删除
这是我的代码:
useEffect(() => {
(async () => {
if (Platform.OS !== "web") {
const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();
if (status !== "granted") {
alert("Sorry, we need camera roll permissions to make this work!");
}
}
})();
}, []);
const pickImage = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
allowsEditing: true,
quality: 1,
});
if (!result.cancelled) {
setImage(result.uri);
}
};
// My current image is locate to : "file:///data/user/0/host.exp.exponent/cache/
// ExperienceData/ImagePicker/2abe4097-05ed-4d23-5648-f279d5a6f995.jpg"
// And what I want is to locate my image to : "https://someting..."
所以我想将此图像 uri 链接转换为 url 链接,以便共享且永不删除。
有人知道如何进行吗?
非常感谢!
【问题讨论】:
-
请补充更多细节,代码sn-p和例子,还不是很清楚:)
-
@vinalti 我只是添加我的代码:)
-
在这里回答了类似的问题:stackoverflow.com/a/70580835/3832047。您需要将文件作为 base64 上传到您的服务器,或者将其流式传输 - 流式传输更好,但需要更多代码。
-
@Phobos,我试过但对我不起作用。你有链接或其他东西可以尝试流式传输吗?我不知道该搜索什么来帮助我谢谢!
-
您在使用 base64 选项时遇到了什么问题?我可以保证它比设置您的服务器进行文件流式传输更容易解决。
标签: react-native image url expo