如何转换file://url到https或http url在react本地博览会使用那里包?我怎么做?像在我的情况下photo. uri是一个file://url,我想把它转换成https或http url我怎么做?使用expo文件系统,
我试过这个:
import * as FileSystem from 'expo-file-system';
import { createDownloadResumable } from 'expo-file-system';
const { uri } = createDownloadResumable(photo.uri, FileSystem.documentDirectory);
let httpsUri = uri.replace("file://" "https://");
还尝试过:const { uri } = createDownloadResumable(photo.uri, FileSystem.documentDirectory + 'photo.jpg');
什么都没做
该URI变为未定义
const handleTakePicture = async () => {
if (faceData.length === 0) {
alert('No Face')
}
else if (cameraRef.current) {
const photo = await cameraRef.current.takePictureAsync();
console.log(photo.uri)
if (!photo.cancelled) {
const { uri } = createDownloadResumable(photo.uri, FileSystem.documentDirectory);
let httpsUri = uri.replace("file://", "https://");
console.log(`this is the url of the fs ${httpsUri}`)
}
}
}
还有什么更好的解决方案?
2条答案
按热度按时间m0rkklqb1#
您可以使用expo-file-system包提供的fetch方法在React Native Expo应用程序中将file://URL转换为https或http URL。
下面是一个如何使用fetch方法将file://URL转换为https URL的示例:
从"expo-file-system"导入 * 作为文件系统;
//...
常量文件Uri ='文件://路径/到/文件. jpg';
常量响应=等待文件系统. fetch(文件Uri,{方法:"头部"});
常量httpsUrl =响应. url;
上面的代码片段首先导入包,然后使用fetch方法向file://URL发送HEAD请求。fetch方法返回的响应对象包含url属性,该属性保存文件的https URL。
您还可以将HEAD方法更改为GET以下载文件,然后可以使用http或https url访问文件。
请记住,只有当您尝试访问的文件托管在支持https或http访问的Web服务器上时,此操作才有效。
5uzkadbs2#
从“expos-asset”导入{资产};
您需要使用fetch或XMLHttpRequest下载文件,以确保该文件在本地文件系统中可用。
或者,您可以使用react-native-fs包将file://URL转换为https或http URL。
如果你正在使用react-native-fs软件包,你需要首先通过在你的项目目录中运行npm install react-native-fs --保存或者yarn add react-native-fs来安装它。