如何在使用 Croppie 库上传之前设置默认图像?

How to set default image before upload using Croppie library?

我正在使用 Croppie 裁剪和上传图片。一切正常,除了我无法在上传前设置默认图像。如果有人帮助,我将不胜感激:

这是我的 javascript 代码:

function demoUpload() {
        var $uploadCrop;

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

                reader.onload = function (e) {
                    $('.upload-demo').addClass('ready');
                    $uploadCrop.croppie('bind', {
                        url: e.target.result
                    }).then(function(){
                        console.log('jQuery bind complete');
                    });

                }

                reader.readAsDataURL(input.files[0]);
            }
            else {
                swal("Sorry - you're browser doesn't support the FileReader API");
            }
        }

        $uploadCrop = $('#upload-demo').croppie({
            viewport: {
                width: 300,
                height: 300,
                type: 'rawcanvas'
            },

        });




        $('#upload').on('change', function () { readFile(this); });

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


  $uploadCrop.croppie('bind', {
        url: resp
    });




                // $('.cr-image').attr('src',resp).removeAttr('style');
                 //$('.cr-image').attr('style','width:300px');
                 //$('.cr-image').attr('aria-valuenow','0.1563');


                $('.image_cropped').val(resp);


                //$('#upload-demo').html('<img src="'+resp+'">');

            });
        });
    }

演示图片:

我在谷歌上搜索了很多但找不到解决方案。 Croppie 文档对我也不起作用。 :( 谢谢

如果你只显示图像而不是你可以设置背景图像。

将 src 添加到 html 中的图片标签 示例:

<img src="/default_img.jpg"/>

或者您也可以通过JQuery添加 示例:

$("#pic1").attr("src", "/image_path/default_img.jpg");

当您 add/upload 通过 javaScript 裁剪的新图片时,它将替换您的默认图片。

$uploadCrop = $('#upload-demo').croppie({

        url:'anonymous.png'

        viewport: {
            width: 300,
            height: 300,
            type: 'rawcanvas'
        },

    });

将 url:'anonymous.png' 添加到 select 默认图像

根据文档,没有设置默认图像的选项。所以我找到的解决方法是在加载时设置默认图像并在用户上传图像时替换它。

var isDefaultImage = true;
var logo = "/content/img/missing-image.jpg";

function readFile(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();
        reader.onload = function (e) {
        partnerLogo.croppie('bind', {
            url: e.target.result
        });
        $('#upload-container').addClass('ready');
        }
        reader.readAsDataURL(input.files[0]);
    }
}

partnerLogoCropper = $('#upload-container').croppie({
    viewport: {
        width: 250,
        height: 150,
        type: 'square'
    },
    boundary: {
        width: 300,
        height: 200
    },
    url: logo
 });

$('#upload').on('change', function () {
    readFile(this);
});

$('.upload-result').on('click', function (ev) {
    // checking if it is the default image and user hasn't uploaded any new image
    if (!$('#upload-container').hasClass('ready') && isDefaultImage){
        alert("NOT UPLOADED AND DEFAULT IMAGE IS LOADED");
    }
});