Как отправить данные холста в файл PHP с помощью AJAX? - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь добавить данные из холста (для приложения камеры) в свою базу данных, используя Ajax, и кажется, что я не могу правильно получить данные в моем файле PHP.

Моя конфигурация: IЯ работаю на VPS, работающем Nginx.

Я пытался:

  1. Изменение типа POST на GET, чтобы увидеть, что происходит;поскольку аргумент «data» был слишком длинным, я мог видеть в консоли, что данные были отправлены правильно («save.php? img = thedatafrommyjsfilewhichwstoolong»);Итак, я пришел к выводу, что мой запрос AJAX был довольно правильным.

Кроме того, журнал консоли, похоже, работает нормально, когда console.log (данные) → отображает массив [img], указывающий на мои данные.

Я попытался отредактировать непосредственно URL-адрес save.php, написав: save.php? Img = test, чтобы увидеть, что происходит (запрашивая, конечно, $ _GET в моем состоянии).Он повторил то, что я просил (например, «YAY», когда он на самом деле получает $ _GET [img]), но не сделал то, что я ожидал (я попросил mkdir («./ images», 0777, true);плюс эхо, чтобы я мог ФИЗИЧЕСКИ увидеть, сработало это или нет).

Я также попытался ввести код для вставки данных в базу данных напрямую, но это помоглотоже не работает.

Это мой JS-код и AJAX-запрос:

        var dataimg = canvas.toDataURL('image/png');
        console.log(dataimg);
        //photo.setAttribute('src', data);
        var img = document.createElement('img');
        img.src = dataimg;
        document.getElementById('photo').append(img)
        $.ajax({
            url: "save.php",
            type: "POST",
            data: {"img": dataimg},
            success: function(data) { //we got the response
                console.log(data);
                alert('Successfully called');
            },
            error: function(jqxhr, status, exception) {
                alert('Exception:', exception);
            }
        }).done(function(o){
            console.log('saved');

        });

Это мой PHP-файл save.php:

if ($_POST[img]){
    echo YAY;
    touch ("./imagesfolder", 0777, true);
}
else
{
    echo NULL; 
}

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

Это мой первый пост здесь, так что не стесняйтесь спрашивать меня больше деталей / проситьотредактируйте этот пост, чтобы он был максимально понятным - английский также не является моим родным языком, поэтому не стесняйтесь исправлять некоторые грамматические ошибки.

Спасибо заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...