为什么 FormData 在添加多个内容时停止工作?

时间:2021-05-28 17:28:50

标签: jquery ajax

我正在使用croppie裁剪图像并将其上传到我的服务器,问题是当我单独发送裁剪图像时,它运行良好,但是当我想在FormaData中添加其他信息时,一切都停止工作.. .

WORKS 的原始代码是这样的:

$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") }
      });

第一次尝试,不行,于是我添加了cache、contentType和processData,开始保存文件,但是是一种空文件或损坏文件...

有谁知道我该如何解决这个问题?! 提前致谢。

0 个答案:

没有答案