Как использовать ajax для сохранения изображения с php - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь использовать ajax для вызова другой страницы php, в которой сохраняется изображение, снятое с веб-камеры. Хотя я использую следующий код, я не получил никакой ошибки, но вместо сохранения изображения он сохраняет пустое изображение (белое).

Код ajax:

function ajaxPOSTTest() {
        try {
            // Opera 8.0+, Firefox, Safari
            ajaxPOSTTestRequest = new XMLHttpRequest();
        } catch (e) {
            // Internet Explorer Browsers
            try {
                ajaxPOSTTestRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    ajaxPOSTTestRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    // Something went wrong
                    alert("Your browser broke!");
                    return false;
                }
            }
        }

        ajaxPOSTTestRequest.onreadystatechange = ajaxCalled_POSTTest;
        var url = "storeImage.php";
        var params = "image="+srcI;
        ajaxPOSTTestRequest.open("POST", url, true);
        ajaxPOSTTestRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        ajaxPOSTTestRequest.send(params);
    }

    //Create a function that will receive data sent from the server
    function ajaxCalled_POSTTest() {
        if (ajaxPOSTTestRequest.readyState == 4) {
            document.getElementById("snapshot").innerHTML = ajaxPOSTTestRequest.responseText;
        }
    }

** когда srcI - это sr c изображения и storeImage. php - это страница php, на которую ajax отправляет информацию.

Код php:

<?php

    $img = $_POST['image'];
    $folderPath = "upload/";

    $image_parts = explode(";base64,", $img);
    $image_type_aux = explode("image/", $image_parts[0]);
    $image_type = $image_type_aux[1];

    $image_base64 = base64_decode($image_parts[1]);
    $fileName =  'camera_installation.png';

    $file = $folderPath . $fileName;
    file_put_contents($file, $image_base64);

    print $img;

?>  

Когда я отлаживаю его, php возвращает sr c изображения, поэтому ajax работает, но изображение все еще сохраняется как пустое.

Заранее спасибо .

...