javascript - PHP - 在使用 croppie 插件上传之前使用 jquery ajax 裁剪图像

标签 javascript php jquery css ajax

我已经使用 Croppie 插件使用 PHP、jQuery 和 Ajax 编写了裁剪图像的代码。

我也在尝试用它添加输入值。
但是我不知道如何使用 PHP 使用 ajax 发布输入值。
我的意思是说,当我上传图片时,我希望输入值也随图片一起发布。

请检查以下代码以供引用:-

$uploadCrop = $('#upload-demo').croppie({
  enableExif: true,
  viewport: {
    width: 853,
    height: 292,
    type: ''
  },
  boundary: {
    width: 853,
    height: 292
  }
});

$('#upload').on('change', function () {
  var reader = new FileReader();
  reader.onload = function (e) {
    $uploadCrop.croppie('bind', {
      url: e.target.result
    }).then(function(){
      console.log('jQuery bind complete');
    });

  }
  reader.readAsDataURL(this.files[0]);
});

$('.upload-result').on('click', function (ev) {
  $uploadCrop.croppie('result', {
    type: 'canvas',
    size: 'viewport'
  }).then(function (resp) {

    $.ajax({
      url: "upload.php",
      type: "POST",
      data: {"image":resp},
      success: function (data) {
        html = '<img src="' + resp + '" />';
        $("#upload-demo-i").html(html);
      }
    });
  });
});
<script src="http://demo.itsolutionstuff.com/plugin/jquery.js"></script>
<script src="http://demo.itsolutionstuff.com/plugin/croppie.js"></script>
<link rel="stylesheet" href="http://demo.itsolutionstuff.com/plugin/bootstrap-3.min.css">
<link rel="stylesheet" href="http://demo.itsolutionstuff.com/plugin/croppie.css">

<div class="row">
  <div class="col-md-4 text-center">
<div id="upload-demo" style="width:350px"></div>
  </div>
</div>
<!--<div class="row">
<div class="col-md-4" style="">
<div id="upload-demo-i" style="background:#e1e1e1;width:300px;padding:30px;height:300px;margin-top:30px"></div>
</div>
</div>-->
<div class="row">
  <div class="col-md-4" style="padding-top:30px;">
<strong>Select Image:</strong>
<br/>
<input type="file" id="upload">
<br/>
<input type="text" name="title">
<button class="btn btn-success upload-result">Upload Image</button>
  </div>
</div>

上传.php

<?php
$data = $_POST['image'];

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);

$data = base64_decode($data);
$imageName = time().'.jpg';
file_put_contents('upload/'.$imageName, $data);

echo 'done';

?>

最佳答案

所以您只是想知道如何将标题添加到 data 以通过 Ajax 发布?

这比您已经完成的要容易!!
如果你做到了......

方法如下:

data: {"title:":$("input[name='title']").val(),"image":resp}

您将在 PHP 端使用 $_POST['title'] 获取标题。

我做了一个 CodePen demo显然,Ajax 被注释掉了......
但是要发送的数据显示在控制台中。

关于javascript - PHP - 在使用 croppie 插件上传之前使用 jquery ajax 裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44221987/

相关文章:

php step exceeds range, windows only with date ('Y' )

javascript - 谷歌富卡Javascript抛出错误

javascript - 使 div 在 foreach 循环中出现的问题

javascript - 如何用单词隐藏整行文本

javascript - PHP 进程阻止页面完全加载和显示

php - 如何动态创建表并在列不存在时更改表

php - 如何在 PHP 中实现复制构造函数?

javascript - 如何在谷歌地图 v3 中制作一个可调整大小的圆圈?

javascript - :after when inserting html through JavaScript

javascript - html 表单从网页传递到子 iframe 时不保留其元素的属性?