本文介绍了由于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上显示从移动设备上传的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-29 06:30
查看更多