Почему FormData перестает работать при добавлении нескольких материалов?

#jquery #ajax

Вопрос:

Я использую croppie для обрезки и загрузки изображения на свой сервер, и проблема в том, что, когда я отправляю только обрезанное изображение, оно отлично работает, но когда я хочу добавить другую информацию в форму, все перестает работать…

Исходный код, который РАБОТАЕТ, вот этот:

 $uploadCrop.croppie('result', {type:'canvas', size:'viewport'}).then(function(resp){
    $.ajax({
      url: "upload.php",
      type: "POST",
      data: { "image": resp },
      success: function (data) { alert("ok"); }
    });
});
 

И файл PHP выглядит так:

 <?php 
$data = $_POST['image'];
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
$imageName = time().'.png';
file_put_contents('img/profiles/'.$imageName, $data);
?>
 

Это работает идеально, изображение сохраняется правильно, но когда я использую этот код ниже с тем же файлом PHP, перестает работать…

       var cropped_img;
      var nameInfo = "Someone";
      var mailInfo = "anything@mail.com";
      $uploadCrop.croppie('result', {type:'canvas', size:'viewport'}).then(function(resp){cropped_img = resp;});
      var parametros = new FormData();
      parametros.append('name', nameInfo);             
      parametros.append('mail', mailInfo);
      parametros.append('image', cropped_img);
      $.ajax({
        url: 'upload.php',
        data: parametros,
        type: 'post',
        cache: false,
        contentType: false,
        processData: false,
        success: function (response) { alert("ok") }
      });
 

В первый раз, когда я попытался, это не сработало, поэтому я добавил кэш, тип содержимого и данные процесса и начал сохранять файл, но это своего рода пустой или поврежденный файл…

Кто-нибудь знает, как я могу это исправить?! Заранее спасибо.

Комментарии:

1. Что именно вы подразумеваете под «вроде как пустым»?

2. Я нахожу файл изображения в папке с правильным именем и расширением, но когда я загружаю его и открываю, программа просмотра изображений ничего не показывает, и я также не могу открыть его с помощью какого-либо редактора фотографий… и размером 0 байт.

3. Видите Ли Вы Какую-Либо Ошибку В Своей Консоли JS?

4. Если я удалю ContentType и ProcessData false для обоих, я получу «Ошибка недопустимого вызова неучтенного типа».