【发布时间】:2018-10-04 19:34:23
【问题描述】:
所以我正在使用 react-native 创建一个简单的相机应用程序。对于相机组件,我使用react-native-camera 包。到目前为止,我可以使用 react-native CameraRoll Api CameraRoll.saveToCameraRoll 捕获照片并将其保存到 DCIM 文件夹中,但我想将其保存在另一个文件夹中,例如 DCIM/CameraApp 或 Pictures 文件夹中。为此,我使用RNFetchBlob 包。我尝试了几种方法来从 this.camera.takePictureAsync 返回的 uri 创建一个新文件,但它会引发文件不存在的错误。但是,如果我将该 uri 传递给 CameraRoll.saveToCameraRoll,它会将其保存在 DCIM 文件夹中。
我当前的代码:
const options = { quality: 0.5 };
const data = await this.camera.takePictureAsync(options)
const { uri, height, width } = data;
this.setState({ uri, height, width });
CameraRoll.saveToCameraRoll(data.uri, 'photo') // it saves it into DCIM
.then( uri => {
// tried this too
//RNFetchBlob.fs.createFile(`${RNFetchBlob.fs.dirs.DCIMDir}/newfile.png`, uri, 'uri'); // throws error that file does not exist
RNFetchBlob.fs.cp(`${RNFetchBlob.fs.dirs.DCIMDir}`, `${RNFetchBlob.fs.dirs.DCIMDir}/CameraApp/p.png`);
console.warn('uri:', uri)
})
.catch( err => console.warn('err:', err));
console.warn(data);
我尝试了一些奇怪的方法只是将文件保存在我想要的位置,但徒劳无功。我希望我已经清除了我的意图,但如果您需要更多信息,请告诉我。欢迎提出任何建议。
【问题讨论】:
-
@Julien Malige 你能对这个问题提供任何见解吗..
标签: android react-native react-native-camera