Как использовать moveFile

Мне нужно поделиться локальным изображением в родном приложении реакции, использовать реагирующую нативную долю и реагирующую нативную-fs. Изображение находится в локальной папке в корневом приложении с именем «изображения». Как поделиться этим изображением. Мне нужно скопировать или переместить изображение во временную папку и использовать это изображение для получения абсолютного пути.

Это мой код. rnfs.movefile не работает

getAssetFileAbsolutePath = async () => {
  const dest =
  `${RNFS.TemporaryDirectoryPath}${Math.random().toString(36)
   .substring( 
    .7)}.png`;
  const img = './images/page1.png';
  try {
    await RNFS.moveFile(img, dest);
    console.log("dobro", dest)
  } catch(err) {
    console.log("greska", err)
  } 
 }

Я получаю сообщение об ошибке «page1.png» не может быть перемещено в «tmp», потому что либо первое не существует, либо папка, содержащая второе, не существует.


person Ismeet    schedule 07.10.2019    source источник


Ответы (1)


используйте rn-fetch blob с реагирующим собственным общим ресурсом, сначала найдите путь к изображению и преобразуйте его к базе64. затем поделитесь изображением, используя ответный собственный пакет общего доступа

ShareFile(file) {
    let imagePath = null;
    RNFetchBlob.config({
        fileCache: true
    })
    .fetch("GET", file)
    // the image is now dowloaded to device's storage
    .then(resp => {
        // the image path you can use it directly with Image component
        imagePath = resp.path();
        return resp.readFile("base64");
    })
    .then(async base64Data => {
        var base64Data = `data:image/png;base64,` + base64Data;
        // here's base64 encoded image
        await Share.open({ url: base64Data });
        // remove the file from storage
        return fs.unlink(imagePath);
    });
}
person Aurangzaib Rana    schedule 07.10.2019
comment
строка файла похожа на «./images/page1.png»? - person Ismeet; 07.10.2019
comment
есть ошибка Возможный необработанный отказ от обещания (id: 2): Ошибка: неподдерживаемый URL-адрес - person Ismeet; 07.10.2019
comment
в случае, если файл .fetch (GET, файл) должен быть API? - person Ismeet; 08.10.2019