使用react native将content:// uri转换为file:// uri

普林尼奥·梅耶(Plinio Mayer)

在从expo的DocumentPicker获取路径之后,我目前正在尝试使用expo的FileSystem打开文件,但是我找不到找到使DocumentPicker的URI可读到FileSystem的方法。一切正常,我在权限或其他方面都没有问题,但是到目前为止,我能找到的每个教程基本上都是针对使用公开的本机代码或Java响应本机项目的。

在这里,我称之为DocumentPicker:

import * as DocumentPicker from 'expo-document-picker';

const Hello = ({navigation}) => (
  <HelloView>
    <HelloButton
      style={{
        backgroundColor: WhatsappStyles.colors.lightGreen,
      }}
      activeOpacity={0.5}
      onPress={() => {
        DocumentPicker.getDocumentAsync({
          copyToCacheDirectory: false,
        }).then(({uri}) => {
          navigation.navigate('LoadFile', {path: uri});
        });
      }
    }>
      <HelloButtonText>Go to App</HelloButtonText>
    </HelloButton>
  </HelloView>
);

在这里,我尝试(未成功)阅读路径:

import * as FileSystem from 'expo-file-system';


const LoadFile = ({navigation, route}) => {
  let [loading, setLoading] = useState(true);

  useEffect(() => {
    FileSystem.readAsStringAsync(route.params.path).then(result => {
    // do something here
    }
    setLoading(false);
  }, []);
...

我正在使用react-navigation / stack进行堆栈导航,并使用styled-components / native来构建组件。

普林尼奥·梅耶(Plinio Mayer)

因此,据我所知,没有办法将content:// uri“转换”为file:// uri,但实际上您可以使用FileSystem的downloadAsync函数将文件下载到缓存或内部存储中,并使用文件:// uri从那里产生。

例如

DocumentPicker.getDocumentAsync({
    copyToCacheDirectory: false,
}).then(({contentUri}) => {
    FileSystem.downloadAsync(
         contentUri, 
         FileSystem.documentDirectory + '<file name>')
    .then(({uri}) => {
         FileSystem.readAsStringAsync(uri)
         .then(result => {
              // do what you want here.
         });
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据URI转换为文件

来自分类Dev

如何将URI参数转换为JSON

来自分类Dev

如何将List <string>中的Uri转换为List <Uri>?

来自分类Dev

将Url转换为Uri

来自分类Dev

将URI转换为文件URI(file:////)

来自分类Dev

如何将本地URI转换为path?

来自分类Dev

将文件路径转换为URI

来自分类Dev

无法使用带有uri的React Native显示图像

来自分类Dev

Ruby:将<br>转换为换行URI编码

来自分类Dev

将.torrent文件转换为磁铁链接/ uri

来自分类Dev

如何将MultiPartFile(图像)转换为数据URI?

来自分类Dev

将IP地址转换为有效的URI

来自分类Dev

在Android中使用IOUtils将Uri / Url转换为String

来自分类Dev

使用Firebase存储将URI转换为字符串

来自分类Dev

如何将URI转换为File Android 10

来自分类Dev

为什么将Blob转换为数据URI会导致与直接数据URI方法不同的URI?

来自分类Dev

将字符串转换为Uri字符串

来自分类Dev

如何将URI参数转换为JSON

来自分类Dev

XSLT-将URI反斜杠转换为正斜杠

来自分类Dev

将文件路径转换为URI

来自分类Dev

将图像数据URI转换为图像PHP

来自分类Dev

如何将动态Shell参数转换为URI查询?

来自分类Dev

如何将文件Uri方案转换为内容Uri方案?

来自分类Dev

使用Firebase存储将URI转换为字符串

来自分类Dev

将URI转换为与方案相关的URI的最快方法(在python中)

来自分类Dev

在Python 2中将file:// URI转换为打开参数字符串

来自分类Dev

将数据 URI 转换为 Blob

来自分类Dev

如何将图像 uri 转换为 cv::Mat

来自分类Dev

将 Url 转换为 Uri 并将其传递给 AsyncTask<>