javascript - Croppie 插件无法在 iOS 和 Safari 上运行

标签 javascript php jquery croppie

我提到了这个URL

我正在使用croppie plugin它在 Android、Chrome、Mozilla 上运行良好。但不适用于 iOS 和 Safari。如果我从 iOS 上传图像,那么它会旋转 90*。此外,该图像无法在 Safari 上上传。 这是我的完整代码,

HTML

<div class="container">
    <div class="panel panel-default">
      <div class="panel-heading">Image Upluad</div>
      <div class="panel-body">
        <div class="row">
            <div class="col-md-4 text-center">
                <div id="upload-demo" style="width:350px"></div>
            </div>
            <div class="col-md-4" style="padding-top:30px;">
                <strong>Select Image:</strong>
                <br/>
                <input type="file" id="upload">
                <br/>
                <button class="btn btn-success upload-result">Upload Image</button>
            </div>
            <div class="col-md-4" style="">
                <div id="upload-demo-i" style="background:#e1e1e1;width:300px;padding:30px;height:300px;margin-top:30px"></div>
            </div>
        </div>
      </div>
    </div>
</div>

JS

<script type="text/javascript">
$uploadCrop = $('#upload-demo').croppie({
    enableExif: true,
    viewport: {
        width: 200,
        height: 200,
        type: 'circle'
    },
    boundary: {
        width: 300,
        height: 300
    }
});
$('#upload').on('change', function () { 
    var reader = new FileReader();
    reader.onload = function (e) {
        $uploadCrop.croppie('bind', {
            url: e.target.result
        }).then(function(){
            console.log('jQuery bind complete');
        });
    }
    reader.readAsDataURL(this.files[0]);
});
$('.upload-result').on('click', function (ev) {
    $uploadCrop.croppie('result', {
        type: 'canvas',
        size: 'viewport'
    }).then(function (resp) {
        $.ajax({
            url: "/ajaxpro.php",
            type: "POST",
            data: {"image":resp},
            success: function (data) {
                html = '<img src="' + resp + '" />';
                $("#upload-demo-i").html(html);
            }
        });
    });
});
</script>

ajaxpro.php

$data = $_POST['image']; list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data); $data = base64_decode($data);
$imageName = time().'.png'; file_put_contents('upload/'.$imageName, $data);
echo 'done';

请帮我解决。

最佳答案

我找到了解决方案。

enableExif 需要 exif.js,如文档中所述:http://foliotek.github.io/Croppie/#enableExif

添加后,它在所有设备上都能正常工作。

关于javascript - Croppie 插件无法在 iOS 和 Safari 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48849046/

相关文章:

javascript - ruby rails : error when using unobtrusive JavaScript to update partial

javascript document.ready 并不总是有效,iscroll!

javascript - 为什么 typeof 的结果与传入的表达式的计算结果不同?

php - 调度php脚本

php - Paypal 交易成功后,如何获取变量来更新我的数据库?

javascript - 连接另一个变量时初始化一个变量

javascript - cookie 未保存在 sencha touch 2 应用程序中

php - PHP 的基本导航不起作用

javascript - 从 PHP 创建 JavaScript Snackbar

javascript - 以这种格式获取当前日期 "May 09, 2019"