【发布时间】:2021-08-04 09:56:13
【问题描述】:
我正在开发一个上传图片的程序。我正在使用“expo-image-picker”来选择图像,它正在正确更新“图像”状态,如下所示。代码执行,图像文件上传到 Firebase 存储,但上传为 9 字节文件,而不是完整的 2.4 mb 图像。
请帮助我理解我所犯的错误。
图像值: file:///var/mobile/Containers/Data/Application/15A92FD5-894C-47D6-ABEF-36F73CA7F778/Library/Caches/ExponentExperienceData/%2540anonymous%252Fapp26Apr-a5cceae1-72c0-4cec-a926-ffb46822d087/ImagePicker/C7ABC0E1- 80FC-4B87-A1AD-8B6DD4A1BB9A.jpg
uploadUri 值: /var/mobile/Containers/Data/Application/15A92FD5-894C-47D6-ABEF-36F73CA7F778/Library/Caches/ExponentExperienceData/%2540anonymous%252Fapp26Apr-a5cceae1-72c0-4cec-a926-ffb46822d087/ImagePicker/C7ABC0E1-80FC A1AD-8B6DD4A1BB9A.jpg
文件名值: C7ABC0E1-80FC-4B87-A1AD-8B6DD4A1BB9A.jpg
const uri = image;
const filename = uri.substring(uri.lastIndexOf("/") + 1);
const uploadUri = Platform.OS === "ios" ? uri.replace("file://", "") : uri;
firebase
.storage()
.ref(filename)
.put(uploadUri)
.then((value) => {
console.log("Image uploaded");
});
【问题讨论】:
-
我还注意到手机上的实际图像文件名不同。我怀疑 Firebase 存储是否无法解释 expo 生成的 Uri。因此,Firebase 仍在上传提供的文件名,但无法上传提供的路径中不存在的实际文件。我正在使用最新版本的 expo-image-picker。 "expo-image-picker": "^10.1.4",
标签: javascript firebase expo firebase-storage