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
반응형

+ Recent posts