14

から画像をアップロードしようとしていcameraRollます。問題は、cameraRollコンポーネントが実際のファイル パスではなく content:// URI を返すことです。画像をアップロードするには、ファイル パスが必要です。content:// URI をファイル URI に変換する方法はありますか? ありがとう

4

3 に答える 3

11

@Madhukar Hebbarから提出された関数を使用して、React Native Node Module にしました。

ここで見つけることができます: react-native-get-real-path

したがって、目的を達成するために、上記のモジュールをreact-native-fsと組み合わせて使用​​できます

選択した画像をカメラ ロールからアップロードする場合は、次のようにします。

RNGRP.getRealPathFromURI(this.state.selectedImageUri).then(path =>
  RNFS.readFile(path, 'base64').then(imageBase64 =>
    this.props.actions.sendImageAsBase64(imageBase64)
  )
)
于 2016-06-22T21:52:42.000 に答える
2

to below メソッドを渡して content:// URIファイル パスを文字列として取得し、ファイル オブジェクトを使用して操作を行います。

File file = new File(getURIPath(uriValue));

/**
 * URI Value
 * @return File Path.
 */
String getURIPath(Uri uriValue) 
    {
        String[] mediaStoreProjection = { MediaStore.Images.Media.DATA };
        Cursor cursor = getContentResolver().query(uriValue, mediaStoreProjection, null, null, null);
        if (cursor != null){ 
        int colIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        String colIndexString=cursor.getString(colIndex);
        cursor.close();
        return colIndexString;
        }
        return null;
    }
于 2016-03-28T09:33:39.730 に答える