javascript — загрузка изображения из localStorage в переполнение стека

Прежде всего, извините за мой плохой английский.
У меня следующая проблема:

У меня есть следующий код для хранения удаленных изображений в localStorage:

localStorage.setItem("dropped_images", JSON.stringify( array_dropped_images ) );

Это приведет к чему-то вроде следующего:

localStorage.getItem('dropped_images'):
[
{"id":0,"data":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACgAAAAWgCAIAAAAdYo2IAAAAGXRFW…nu8vxl30QxDphgBbok9vXa1iT2dWMDBGQHDCyNMfCUO83/A/VzaPVq31uqAAAAAElFTkSuQmCC"},
{"id":1,"data":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACgAAAAWgCAIAAAAdYo2IAAAAGXRFW…m4r4R9wH1l7K6H+6pa8cB9IzySnR2RydqmlhaTBqfp8hP/HzkuuKqP/f8rAAAAAElFTkSuQmCC"}
]

Я просто не могу понять, как я могу отправить его в PHP и получить его через $ _FILES. Вы можете мне помочь?
Спасибо!

——————- Решено ————————————————- ————————————————— ———

Исходя из лучшего ответа (@ sam-battat), можно решить эту проблему, отредактировав некоторую часть функции:

function base64_to_img($base64_string, $output_file) {
$data = explode(',', $base64_string);

/**
* Remove the raw text
*/
$ext = str_replace("data:image/", '', $data[0]);
$ext = str_replace(";base64", '', $ext);

/**
* Create the file with the correct extension
*/
$ifp = fopen($output_file . "." . $ext, "wb");

/**
* Create file based on base64
*/
fwrite($ifp, base64_decode($data[1]));
fclose($ifp);

/**
* return file path
*/
return $output_file;
}

Большое спасибо!

1

Решение

Вы можете опубликовать строку (строка base64) и преобразовать ее позже в файл:

$img = $_POST['img_data'];

$file = base64_to_img($img, '/path/to/file.png');

function base64_to_img($base64_string, $output_file) {
$ifp = fopen($output_file, "wb");

$data = explode(',', $base64_string);

fwrite($ifp, base64_decode($data[1]));
fclose($ifp);

return $output_file;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]