#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
fromreact-native
?2. @VasylNahuliak спасибо за ваш комментарий. Да, я только что попробовал это, и я могу показать изображение в компоненте изображения.
Ответ №1:
вы не сможете увидеть сохраненный файл изображения в директории FileSystem.document , вам необходимо
FileSystem.readDirectoryAsync(FileSystem.documentDirectory).then(data => {
data.forEach(filename_ => {
console.log("=cached image==***===" filename_)
})
чтобы проверить, есть ли он там. Директория FileSystem.documentDirectory доступна только «прагматически»