本文介绍了由于Reaction Native中的URL不同,世博会图像拾取器无法在Web上显示从移动设备上传的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从网络帐户上传了图片,此图片也可以在手机上显示,但是当我从手机上传图片时,它无法在Web或任何其他手机上显示
因为在数据库中Web图像uri是可读的,但移动图像uri是不可读的我的图像选取器代码
const pickImage = async () => {
// No permissions request is necessary for launching the image library
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
base64: true,
});
从网站上传的图片
手机上传图片
推荐答案
您将在Web上看到文件的URI是base64字段的base64优先版本。
在移动设备上,您需要上传该文件,而不是使用fileUri。要保持跨平台一致性,并避免编写重复代码,只需保存Base64结果即可。
const { base64 } = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
base64: true,
});
const base64ToUpload = `data:image/jpeg;base64,${base64}`;
您还应该考虑从选择的文件中确定文件类型,因为它不能保证是jpeg(当然取决于您的实现)。
您遇到问题的原因是,Web实现为您提供了文件的base64表示形式,但在移动设备上,您获得的是本地存储中的文件位置,这是两件截然不同的事情。
这篇关于由于Reaction Native中的URL不同,世博会图像拾取器无法在Web上显示从移动设备上传的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!