javascript - Ajax 将图像裁剪为 PHP

标签 javascript php jquery ajax

我正在尝试创建一个 jQuery 图像裁剪器。用户将上传图像,然后将显示他们想要裁剪的位置的图像预览。裁剪尺寸应恰好为 600 x 400。因此,如果用户尝试上传 2000 像素宽 x 2000 像素高的图像,那么他们将只能获得该图像的 600 x 400 选择。用户选择了该图像的裁剪后,他们就可以上传它。裁剪后的图像应该在 Ajax 中转发并发送到 PHP,但如何为其创建 Ajax?如何通过 Ajax 将裁剪后的坐标和图像尺寸发送到 PHP?那么 PHP 应该是什么样子呢?这个插件(cropbox)可以获取图像的src,但由于某种原因它不适用于输入类型="file"。这是jsfiddle ,这是我尝试过的:

HTML

<input type="file" id="cropimage">

jQuery

$(function() {
  var file = $("#cropimage").files[0];
  if (file.type.match(/image\/.*/)) {
    var reader = new FileReader();

    reader.onload = function() {
      var $img = $('<img />').attr({
        src: reader.result
      });
    }
    $img.on('load', function() {
      $img.cropbox({
        width: 600,
        height: 400
      }).on('cropbox', function(event, results, img) {

      })

    })
  }
})

最佳答案

  • 通过file-input附加change监听器
  • 设置reader.readAsDataURL(file);
  • 在 DOM 中附加 $img
$(function() {
  $("#cropimage").on('change', function() {
    var file = this.files[0];
    var reader = new FileReader();
    reader.onload = function() {
      var $img = $('<img />').attr({
        src: reader.result
      });
      $img.on('load', function() {
        $img.cropbox({
          width: 600,
          height: 400
        }).on('cropbox', function(event, results, img) {});
      });
      $('body').append($img);
    };
    reader.readAsDataURL(file);
  });
});
<小时/>

Fiddle Demo

关于javascript - Ajax 将图像裁剪为 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38467808/

相关文章:

Javascript 数据表插件

javascript - jQuery when/then/fail with concurrent ajax requests : Which request failed?

javascript - 为什么我的 html 请求在 javascript 中不起作用

php - 如果数据错误,更改输入的背景颜色

php - 无法在图像容器中制作白色背景

javascript - 如何在选择下拉列表中显示选定复选框的值?

javascript - Highcharts : Change opacity of a column chart

php - 通过php注册一个openfire账号

javascript - 是否可以在不更改 HTML 的情况下像使用 CSS 表格一样对齐元素的宽度?

javascript - ajax成功时隐藏url和参数