PHP - Получить base64 в данных - PullRequest
0 голосов
/ 25 января 2019

Как правильно получить значение base64 в PHP из отправленных данных?

Передаваемые данные:

data:image/png;base64,LongBase64ValueHereOfAnImage

Прямо сейчас я могу получить это только к

$data = $_POST['image'];
list($type, $data) = explode(';', $data);
list($data) = explode(',', $data);
$data = base64_decode($data);

Есть ли правильный способ получить значение base64?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

попробуйте это: загрузите код изображения.

if (count($_FILES) > 0) {
    if (is_uploaded_file($_FILES['image']['tmp_name'])) {
        $conn = mysqli_connect('localhost', 'username', 'password', 'databasename');
        $imgData = addslashes(file_get_contents($_FILES['image']['tmp_name']));
        $imageProperties = getimageSize($_FILES['image']['tmp_name']);
        $sql = "INSERT INTO upload(image) VALUES('$imgData')";
        $current_id = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($conn));
        if (isset($current_id)) {
            echo 'done';
        }
    }
}

А затем получить данные, используя base64

$sql = "SELECT * FROM upload WHERE id = 113";
$sth = $conn->query($sql);
$result = mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,' . base64_encode($result['image']) . '"/>';
0 голосов
/ 25 января 2019

Это можно сделать в одной строке с регулярным выражением

$data = $_POST['image'];
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...