FormData, XMLHttpRequest с изображением BLOB-объекта на iOS - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь преобразовать вставленные изображения (BLOB-объекты) в элементах contentEditable в «правильные» изображения, загрузив их.

Мой код для получения изображений и их загрузки.

function convertimages(article)
{
  images = article.getElementsByTagName('img');
  for (var i = 0; i < images.length; i++) {
    if(images[i].src.startsWith('blob:')){

      formData = new FormData();

      fetch(images[i].src)
        .then(function(response) {
          return response.blob()
        })
        .then(function(blob) {
          formData.append("image", blob );
        });

      xmlhttp=new XMLHttpRequest();
      xmlhttp.open("POST","image.php",false);

      xmlhttp.send(formData);
      images[i].src = xmlhttp.responseText;
    }
  }
}

И мой код для обработки загрузки:

//create unique ID for filename
$id = uniqid();
$dest = './images/kip'.$id;

if (move_uploaded_file ( $_FILES['image']['tmp_name'], $dest )){
  echo $dest;
} else {
  echo "error.jpg";
}

Но при проверке $_FILES это пустой массив.

1 Ответ

0 голосов
/ 17 января 2020

Обещаний .. Обещаний

async function convertimages(article)
{
  images = article.getElementsByTagName('img');
  for (var i = 0; i < images.length; i++) {
    if(images[i].src.startsWith('blob:')){

      formData = new FormData();

      await fetch(images[i].src)
        .then(function(response) {
          return response.blob()
        })
        .then(function(blob) {
          formData.append("image", blob );
        }).then(function(){
          xmlhttp=new XMLHttpRequest();
          xmlhttp.open("POST","image.php",false);
          xmlhttp.send(formData);
          images[i].src = xmlhttp.responseText;
    });
    }
  }
}

Мой первый опыт с ними

...