上传图片后如何在弹出窗口中显示裁剪部分?

时间:2017-01-21 11:20:54

标签: javascript jquery html5 popup

我正在使用http://foliotek.github.io/Croppie插件来裁剪图片。上传图片后,我必须在弹出窗口中显示裁剪部分。从弹出窗口,我必须裁剪图像。下面的代码是在同一页面上显示图像。 我想上传一张图片,该图片应该显示在弹出窗口中,用户可以从中裁剪图片。我不知道该怎么做。你能帮帮我吗?

<?php
    if(isset($_POST['imagebase64'])){
        $data = $_POST['imagebase64'];
        list($type, $data) = explode(';', $data);
        list(, $data)      = explode(',', $data);
        $data = base64_decode($data);
      file_put_contents('image64.png', $data);
    }
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<title>Test</title>
<link href="http://foliotek.github.io/Croppie/croppie.css" rel="stylesheet" type="text/css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="http://foliotek.github.io/Croppie/croppie.js"></script>

<script type="text/javascript">
$( document ).ready(function() {
    var $uploadCrop;

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

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

    $('#upload').on('change', function () { readFile(this); });
    $('.upload-result').on('click', function (ev) {
        $uploadCrop.croppie('result', {
            type: 'canvas',
            size: 'original'
        }).then(function (resp) {
            $('#imagebase64').val(resp);
            $('#form').submit();
        });
    });

});
</script>
</head>
<body>
<form action="test-image.php" id="form" method="post">
<input type="file" id="upload" value="Choose a file">
<div id="upload-demo"></div>
<input type="hidden" id="imagebase64" name="imagebase64">
<a href="#" class="upload-result">Send</a>
</form>
</body>
</html>

0 个答案:

没有答案