React Native - Как сохранить захваченные изображения в другой папке, а не в папке «Изображения» - PullRequest
0 голосов
/ 18 марта 2019

Я создал простое приложение, которое захватывает изображение и загружает его в AWSs3.Я хочу сохранить эти изображения в папке моего приложения.(Я создал это, как только мое приложение установлено).Я хочу сохранить захваченные изображения в эту папку вместо папки «Изображения».Для захвата изображения я использую реагирующее средство выбора изображений.

Мой код:

import ImagePicker from 'react-native-image-picker';
import RNFS from 'react-native-fs';
takePic = () => {

    const options = {
      quality: 1.0,
      maxWidth: 100,
      maxHeight: 100,
      base64: true,
      skipProcessing: true
  }
  const pictureFolder = RNFetchBlob.fs.dirs.SDCardDir+'/Pictures/Text/';
    ImagePicker.launchCamera(options,(responce)=>{

        this.state.testImage.push({ uri: responce.uri });
          const file ={
            uri   : responce.uri,
            name :DeviceInfo.getUniqueID()+'_'+this.props.longitude+'_'+this.props.latitude+'_'+this.state.capturedTime+'_'+this.state.schoolId+'_'+this.state.userId+'_'+this.state.SelectedClass+'_'+this.state.SelectedSection+'_'+this.state.SelectedSubject+'.jpg',
            method: 'POST',
            //path : pictureFolder+responce.fileName,
            path : responce.path,
            type :  responce.type,
            notification: {
                enabled: true
              }
          }

          console.log(pictureFolder);
      });

(я обновил только часть кода).Я попытался упомянуть каталог назначения извне, используя response-native-fs.Но я не сделал.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 18 марта 2019

Предполагается, что папка уже есть в папке галереи

  • Попробуйте это:

    const APP_FOLDER_NAME = 'MyApp';
      const pictureFolder = `${RNFS.PicturesDirectoryPath}/${APP_FOLDER_NAME}`;
      ImagePicker.launchCamera(options, (response) => {
        const { uri } = response;
        const fileName = new Date().getTime();
        RNFS.copyFile(uri, `${pictureFolder}/${fileName}`)
        .then(() => RNFS.scanFile(`${albumPath}/${fileName}`));
      });
    

Этот шаг очень важен для просмотра файла в папке без перезапуска эмулятора или устройства:

.then(() => RNFS.scanFile(`${albumPath}/${fileName}`));
...