Получить загруженный Blob с PHP

у меня есть скрипт, который создает blob и отправляет его в файл PHP. Вот мой код:

HTML / Javascript:

<script type="text/javascript">
    function upload() {

    var data = new FormData();
    data.append('user', 'person');

    var oReq = new XMLHttpRequest();
    oReq.open("POST", 'upload.php', true);
    oReq.onload = function (oEvent) {
      // Uploaded.
    };

    var blob = new Blob(['abc123'], {type: 'text/plain'});

    oReq.send(blob);
}
</script>

<button type="button" onclick="upload()">Click Me!</button>

PHP:

<?php
var_dump($_POST);
?>

когда я смотрю на консоль разработчика, я не получаю никаких данных $_POST на своей странице PHP. Мне нужно знать, как получить текстовый файл на php-скрипт.

любая помощь очень ценится!

2 ответов


данные из blob можно прочитать из php://input, а в

<?php
var_dump(file_get_contents('php://input'));

Если, однако,вы хотите отправить несколько фрагментов данных с объектом данных формы, это будет похоже на обычное сообщение multipart / form-data. Вся строка будет доступна через $_POST и все капли и файл через $_FILES.

function upload() {

    var data = new FormData();
    var oReq = new XMLHttpRequest();
    oReq.open("POST", 'upload.php', true);
    oReq.onload = function (oEvent) {
      // Uploaded.
    };

    var blob = new Blob(['abc123'], {type: 'text/plain'});
    data.append('file', blob);
    oReq.send(data);
}

добавьте Blob в FormData и отправьте его вместо этого.