javascript - 用新的 dataurl Fineuploader 替换当前图像

标签 javascript jquery image fine-uploader

美好的一天,

我终于能够使用fineupload为我的图像 uploader 创建裁剪功能。

我已将 FineUploader 设置为 autoUpload: false,,这样我就可以在图像传递到服务器之前裁剪图像,这就是我所拥有的。

这是我用于捕获裁剪按钮并初始化裁剪器的代码

$(document).on('click','.qq-upload-crop',function(e){ 
    var id = $(this).parent('li').attr('qq-file-id');
    var x =  manualUploader.getFile(id);
    var reader = new FileReader();
    reader.onload = function (e) {
      $('#cimgx').attr('src',e.target.result);
    };
    reader.readAsDataURL(x);
    setTimeout(initCropper, 1000);
    $('#crop-modal').modal('show');
});


function initCropper(){
     $('#cimgx').cropper({
      cropBoxResizable:true,
      autoCrop:true,
      minCropBoxWidth:600,
      minCropBoxHeight:400,
    });
}

enter image description here

如果我点击“裁剪”

另一个模式出现。

enter image description here

当我单击裁剪按钮时,使用此代码

$('#crop').on('click',function(e){
  var x = $('#cimgx').cropper('getCroppedCanvas').toDataURL('image/jpeg');
  console.log(x);
})

我得到了 dataUrl 作为返回。

现在我想用cropperjs 的裁剪图像替换当前最初上传的图像..

我该如何替换要传递的数据..谢谢您的帮助..

最佳答案

不确定我是否理解这个问题

1)您想要替换原始img元素的图像

$('#original_image').attr('src',x);

2)您更有可能想要将裁剪后的图像上传到服务器

HTML

<form action="" id="form_id" method="post" enctype="multipart/form-data">
<input name="upload_media" id="upload_media" type="file" class="hidden">
</form>

Javascript

$('#crop').on('click',function(e){
  var x = $('#cimgx').cropper('getCroppedCanvas').toDataURL('image/jpeg');
  console.log(x);
})
var form_data = new FormData($('#form_id')[0]);
form_data.set('upload_media', cropped_img_data, 'filename.jpg');


$.ajax({
type: 'POST',
url: 'upload.php',
data: form_data,
success: function(data) {
 console.log(data)
}
})

PHP

$filename = $_FILES['upload_media']['name'];
$img = $_FILES['upload_media']['tmp_name'];
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
file_put_contents($filename, $data);

祝你编码愉快!

关于javascript - 用新的 dataurl Fineuploader 替换当前图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48524601/

相关文章:

javascript - ESLint 找不到插件 "eslint-plugin-@typescript-eslint"

javascript - 使用javascript将数组作为 key 对存储在json中?

javascript - 如何在滚动时关闭 Shopify Ajax 购物车?

Javascript 函数 - FB oAuth 函数将其转为 twitter oAuth?

javascript - WordPress 中的 ajax 登录/注销脚本卡住了

css - 设置多个背景(页面底部的图片和其余部分的颜色)

java - 加载图像以设置背景时出错

javascript - 我可以将 jQuery 动态加载到局部变量而不是窗口吗?

JavaScript innerHTML 只会在循环结束时工作

python - 创建图像的函数 imshow 出错