• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

cropper+php+ajax实现上传头像

php 搞代码 4年前 (2022-01-21) 35次浏览 已收录 0个评论

这篇文章主要介绍了关于cropper+php+ajax实现上传头像,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

  • 前端代码

<!DOCTYPE html><html lang="zh-cn"><head><meta charset="UTF-8"><title>上传头像</title><link href="https://cdn.bootcss.com/cropper/3.1.3/cropper.min.css" rel="stylesheet"><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"><style type="text/css">    body{        text-align: center;    }    #user-photo {        width:300px;        height:300px;        margin-top: 10px;    }    #photo {        max-width:100%;        max-height:350px;    }    .img-preview-box {        text-align: center;    }    .img-preview-box > p {        display: inline-block;;        margin-right: 10px;    }    .img-preview {        overflow: hidden;    }    .img-preview-box .img-preview-lg {        width: 150px;        height: 150px;    }    .img-preview-box .img-preview-md {        width: 100px;        height: 100px;    }    .img-preview-box .img-preview-sm {        width: 50px;        height: 50px;        border-radius: 50%;    }	.cropper-view-box, .cropper-face {    border-radius: 50%;}</style></head><body><button class="btn btn-primary" data-target="#changeModal" data-toggle="modal">打开</button><br/>		<p class="user-photo-box">			<img id="user-photo" src="">		</p></p><p class="modal fade" id="changeModal" tabindex="-1" role="dialog" aria-hidden="true"><p class="modal-dialog">    <p class="modal-content">        <p class="modal-header">            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>            <h4 class="modal-title text-primary">            <i class="fa fa-pencil"></i>                        更换头像            </h4>        </p>        <p class="modal-body">            <p class="tip-info text-center">                未选择图片            </p>            <p class="img-container hidden">                <img src="" alt="" id="photo">            </p>            <p class="img-preview-box hidden">                <hr>                <span>150*150:</span>                <p class="img-preview img-preview-lg">                </p>                <span>100*100:</span>                <p class="img-preview img-preview-md">                </p>                <span>30*30:</span>                <p class="img-preview img-preview-sm">                </p>            </p>        </p>        <p class="modal-footer">            <label class="btn btn-danger pull-left" for="photoInput">            <input type="file" class="sr-only" id="photoInput" accept="image/*">            <span>打开图片</span>            </label>            <button class="btn btn-primary disabled" disabled="true" onclick="sendPhoto();">提交</button>            <button class="btn btn-close" aria-hidden="true" data-dismiss="modal">取消</button>        </p>    </p></p></p><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><script src="https://cdn.bootcss.com/cropper/3.1.3/cropper.min.js"></script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><script type="text/javascript">    var initCropperInModal = function(img, input, modal){        var $image = img;        var $inputImage = input;        var $modal = modal;        var options = {            aspectRatio: 1, // 纵横比            viewMode: 2,            preview: '.img-preview' // 预览图的class名        };        // 模态框隐藏后需要保存的数据对象        var saveData = {};        //var URL = window.URL || window.webkitURL;        var blobURL;        $modal.on('show.bs.modal',function () {            // 如果打开模态框时没有选择文件就点击“打开图片”按钮            if(!$inputImage.val()){                $inputImage.click();            }        }).on('shown.bs.modal', function () {            // 重新创建            $image.cropper( $.extend(options, {                ready: function () {                    // 当剪切界面就绪后,恢复数据                    if(saveData.canvasData){                        $image.cropper('setCanvasData', saveData.canvasData);                        $image.cropper('setCropBoxData', saveData.cropBoxData);                    }                }            }));        }).on('hidden.bs.modal', function () {            // 保存相关数据            saveData.cropBoxData = $image.cropper('getCropBoxData');            saveData.canvasData = $image.cropper('getCanvasData');            // 销毁并将图片保存在img标签            $image.cropper('destroy').attr('s<em style="color:transparent">本文来源[email protected]搞@^&代*@码)网9</em><strong>搞代gaodaima码</strong>rc',blobURL);        });        if (URL) {            $inputImage.change(function() {                var files = this.files;                var file;                if (!$image.data('cropper')) {                    return;                }                if (files && files.length) {                    file = files[0];                    if (/^image\/\w+$/.test(file.type)) {                            if(blobURL) {                            URL.revokeObjectURL(blobURL);                        }                        blobURL = URL.createObjectURL(file);                            // 重置cropper,将图像替换                        $image.cropper('reset').cropper('replace', blobURL);                            // 选择文件后,显示和隐藏相关内容                        $('.img-container').removeClass('hidden');                        $('.img-preview-box').removeClass('hidden');                        $('#changeModal .disabled').removeAttr('disabled').removeClass('disabled');                        $('#changeModal .tip-info').addClass('hidden');                        } else {                        window.alert('请选择一个图像文件!');                    }                }            });        } else {            $inputImage.prop('disabled', true).addClass('disabled');        }    }    var sendPhoto = function(){	         // 得到PNG格式的dataURL				var photo = $('#photo').cropper('getCroppedCanvas', {				width: 300,				height: 300			}).toDataURL('image/png');			$.ajax({				url: 'http://localhost/test/upload.php', // 要上传的地址				type: 'post',				data: {					'imgData': photo				},				dataType: 'json',				success: function (data) {					if (data.status == 0) {						// 将上传的头像的地址填入,为保证不载入缓存加个随机数						$('.user-photo').attr('src', '头像地址?t=' + Math.random());						$('#changeModal').modal('hide');					} else {						alert(data.info);					}				}			});    }    $(function(){        initCropperInModal($('#photo'),$('#photoInput'),$('#changeModal'));    });	</script></body></html>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:cropper+php+ajax实现上传头像
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址