728x90
반응형
어떤 프로젝트를 할때마다 항상 한번에 깔끔하게 진행하지 못하는 문제다
getPhotos로 edges 에 해당하는 파일들을 가져올때, ios 는 ph:// 로 시작하는 파일 패스가 나온다.
항상
import {Platform} from 'react-native';
import RNFS from 'react-native-fs';
export const phPathToFilePath = async (
uri: string,
type: string,
ext: string | null,
) => {
const fileURI = encodeURI(uri);
if (Platform.OS === 'ios' && uri.startsWith('ph://')) {
const extension = typeToExt(type, ext);
const copyPath = `${
RNFS.DocumentDirectoryPath
}/${new Date().toISOString()}.${extension}`.replace(/:/g, '-');
// ph경로의 이미지를 file로 옮기는 작업
if (type === 'video') {
return await RNFS.copyAssetsVideoIOS(uri, copyPath);
}
if (type === 'image') {
return await RNFS.copyAssetsFileIOS(uri, copyPath, 360, 360);
}
}
return fileURI;
};
const typeToExt = (type: string, ext: string | null) => {
if (type === 'video') {
return 'mov';
}
if (type === 'image') {
return 'jpg';
}
return ext;
};
이런식으로 ios용으로 form-data 에 들어갈 파일들의 path 를 파싱해주는 함수를 사용한다.
728x90
반응형