Реагируйте-Собственные данные базы 64 на проблему с файловой системой

#php #react-native #base64 #filesystems

Вопрос:

У меня есть очень простой PHP-файл, который возвращает мое изображение в виде данных BASE64

 <?php
require_once 'database_connections.php'; 
$data = json_decode(file_get_contents("php://input"));

$id = mysqli_real_escape_string($con, $data->id);
$page = mysqli_real_escape_string($con, $data->page);

$path = "../../images/" . $id . '/' . $page . '.jpg';

$imagedata = file_get_contents($path);
$base64 = base64_encode($imagedata);   

echo($base64);
 

?>

В моем приложении react я получаю эти данные, как показано ниже

 export const getImage = async () => {
  try {
    const response = await axios.post(
      url,
      {
        id: '11bb2c1b-c262-4171-b614-d8af46898efb',
        page: '001',
      }
    );
    return response.data;
  } catch (error) {
    // handle error
    console.error(error.message);
  }
};
 

мой ответ на base64, как показано ниже:

 /9j/2wCEAAEBAQEBAQEBAQECAQEBAgICAQECAgICAgICAgIDAgMDAw...
 

и, наконец, мой код файловой системы выглядит следующим образом:

 const image = await getImage();
  const filename = FileSystem.documentDirectory   'imagetest.jpg';
  await FileSystem.writeAsStringAsync(filename, image, {
    encoding: FileSystem.EncodingType.Base64,
  });
 

Я не получаю никаких ошибок, но мой файл не сохраняется, как я ни стараюсь. Я работал над этим в течение нескольких часов, но так и не решил свою проблему.

буду признателен за любой совет!

Изменить: Я могу отобразить изображение base64 в компоненте изображения.

Комментарии:

1. Можете ли вы показать свое изображение base64 в Image from react-native ?

2. @VasylNahuliak спасибо за ваш комментарий. Да, я только что попробовал это, и я могу показать изображение в компоненте изображения.

Ответ №1:

вы не сможете увидеть сохраненный файл изображения в директории FileSystem.document , вам необходимо

 FileSystem.readDirectoryAsync(FileSystem.documentDirectory).then(data => {
data.forEach(filename_ => {
  console.log("=cached image==***==="   filename_)
})
 

чтобы проверить, есть ли он там. Директория FileSystem.documentDirectory доступна только «прагматически»