Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要发送到web服务器的裁剪结果_Javascript_Jquery_Html_Croppie - Fatal编程技术网

Javascript 要发送到web服务器的裁剪结果

Javascript 要发送到web服务器的裁剪结果,javascript,jquery,html,croppie,Javascript,Jquery,Html,Croppie,有人能帮我吗? 我不太精通JavaScript,我已经一遍又一遍地阅读了文档,并且在这里查看了很多帖子,还用谷歌搜索了这个问题。我无法获取裁剪结果并将其发送到web服务器。这是我的密码 HTML: 上传 多恩 取消 JS: var basic=$(“#主裁剪器”).cropie({ 视口:{宽度:300,高度:400,键入:'square'}, 边界:{宽:700,高:500}, showZoomer:对 }); 函数读取文件(输入){ if(input.files&&input.file

有人能帮我吗? 我不太精通JavaScript,我已经一遍又一遍地阅读了文档,并且在这里查看了很多帖子,还用谷歌搜索了这个问题。我无法获取裁剪结果并将其发送到web服务器。这是我的密码

HTML:


上传
多恩
取消
JS:


var basic=$(“#主裁剪器”).cropie({
视口:{宽度:300,高度:400,键入:'square'},
边界:{宽:700,高:500},
showZoomer:对
});
函数读取文件(输入){
if(input.files&&input.files[0]){
var reader=new FileReader();
reader.onload=函数(e){
$(“#主裁剪器”).cropie('bind'{
url:e.target.result
});
$('.actionDone').toggle();
$('.actionUpload').toggle();
}
reader.readAsDataURL(input.files[0]);
}
}
$('.actionUpload input').on('change',函数(){readFile(this);});
$('.actionDone')。在('click',function()上{
$(“#主裁剪器”).cropie('result'{
键入:“画布”,
大小:“视口”
}).然后(功能(resp){
$('#formTest').find('name=[“imgf”]').val('src',resp);
});
$('.actionDone').toggle();
$('.actionUpload').toggle();
});

我做了一些额外的研究,并通过使用AJAX找到了一个解决方案。我试过了,效果很好。需要对CSS做一些清理,但这没什么大不了的。以下是一些修改后的代码:

部分JavaScript:

$('.crop_image').click(function(event){
    image_crop.croppie('result', {
      type: 'canvas',
      size: 'viewport'
    }).then(function(response){
      $.ajax({
        url:"upload.php",
        type: "POST",
        data:{"image": response},
        success:function(data)
        {
          $('#uploadimageModal').modal('hide');
          $('#uploaded_image').html(data);
        }
      });
    })
  });
阿贾克斯:

if(isset($\u POST[“image”]))
{
$data=$_POST[“图像”];
$image_array_1=分解(“;”,$data);
$image\u array\u 2=分解(“,”,$image\u array\u 1[1]);
$data=base64_解码($image_数组_2[1]);
$imageName=time().'.png';
文件内容(“pg/$imageName”,$data);
回声';
}

对不起。我没有忽视你。我刚到你的岗位。我不熟悉“Django”,但如果它接近Php,那么我会查看“Ajax:”标记下面包含的代码部分。我必须使用Javascript来准备图像,然后将其发送到一个php文件(通过AJAX)上传到web服务器。正如您所见,我必须先准备图像文件,然后通过“文件内容”将其发送到服务器。如果您能更详细地解释您遇到的问题,我会尽力帮助您。好的,实际上Django通过request.files接收文件数据,这是一个字典。因此,我通过request.FILES['image']接收图像数据,其中image是输入文件的名称。Croppie结果返回base64中的图像数据,如以下数据:image/png;空军基地64号。。。由于它不是字符串,所以在服务器中会引发多值错误。那么,如何将图像数据以字符串或其他形式发送到服务器。。?谢谢你的时间@SiriusGDAgain,我不熟悉Django,但如果我正确理解你的问题。。。在“Ajax:”标签下(实际上是php代码),我必须将响应中的信息解析(分解)成几个数组。一旦我将它分离到第二个数组中,我就使用base64_decode函数来生成$data字符串。我不知道你是否有同样的功能。所以我能说的最好的方法就是看看这三行代码,看看你是否能做同样的事情。对不起,我是最好的助手。我自己还在学习。它对我有用。
<script>

var basic = $('#main-cropper').croppie({
    viewport: { width: 300, height: 400, type: 'square' },
    boundary: { width: 700, height: 500 },
    showZoomer: true
});

function readFile(input) {
  if (input.files && input.files[0]) {
    var reader = new FileReader();

    reader.onload = function (e) {
      $('#main-cropper').croppie('bind', {
        url: e.target.result
      });
      $('.actionDone').toggle();
      $('.actionUpload').toggle();
    }

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

$('.actionUpload input').on('change', function () { readFile(this); });
$('.actionDone').on('click', function(){


    $('#main-cropper').croppie('result', {
        type: 'canvas',
        size: 'viewport'
    }).then(function (resp) {
        $('#formTest').find('name=["imgf"]').val('src', resp);
    });

  $('.actionDone').toggle();
  $('.actionUpload').toggle();
});

</script>
$('.crop_image').click(function(event){
    image_crop.croppie('result', {
      type: 'canvas',
      size: 'viewport'
    }).then(function(response){
      $.ajax({
        url:"upload.php",
        type: "POST",
        data:{"image": response},
        success:function(data)
        {
          $('#uploadimageModal').modal('hide');
          $('#uploaded_image').html(data);
        }
      });
    })
  });
if(isset($_POST["image"]))
{
    $data = $_POST["image"];

    $image_array_1 = explode(";", $data);

    $image_array_2 = explode(",", $image_array_1[1]);

    $data = base64_decode($image_array_2[1]);

    $imageName = time() . '.png';

    file_put_contents("pg/$imageName", $data);

        echo '<img src="'.$imageName.'" class="img-thumbnail" />';

}