Как отправить base64 изображение на сервер PHP?

Есть сервер который обрабатывает изображения разных форматов извлекая их из $_FILES. Раньше использовал js, извлекал значение input и отправлял его ajax сразу на сервер,

   var $input = jQuery("#foto");
   var fd = new FormData;

   fd.append('file', $input.prop('files')[0]);

   fd.append('action', 're');

   jQuery.ajax({
       url: 'http://домен.рф',
       data: fd,
       processData: false,
       contentType: false,
       type: 'POST',
       success: function (data) {

       }

теперь не могу делать запрос с помощью js, так как подключил ssl а на сервере его нет. Решил отправлять фото в base 64 на свой php, а от туда на сервер. Сделал такой js код:

  var data = {
    action: 're',
    foto: await toBase64(jQuery(this).prop('files')[0]),

  };

  jQuery.post( myajax.url, data, function(response) {
  alert(response);
  });

base 64 приходит в php, но на сервер как файл из php отправить никак не могу. Пробовал такой метод:

$upload = $_POST["foto"];
$postdata = array('file' => "@".$upload );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://домен.рф");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    $output = curl_exec($ch);
    print_r($output);
    curl_close($ch);

но как я понимаю он предназначен для файлов расположенных в директории.


Ответы (0 шт):