educoder/app/views/account/avatar.html.erb

159 lines
6.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script src="../head/jquery.min.js"></script>
<link href="../head/cropper.min.css" rel="stylesheet">
<link href="../head/sitelogo.css" rel="stylesheet">
<script src="../head/bootstrap.min.js"></script>
<script src="../head/cropper.js"></script>
<script src="../head/sitelogo.js"></script>
<script src="../head/html2canvas.min.js" type="text/javascript" charset="utf-8"></script>
<div class="panel-user-right-con clearfix ">
<div class="modal fade mt50" id="avatar-modal" aria-hidden="true" aria-labelledby="avatar-modal-label" role="dialog" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<form class="avatar-form">
<div class="modal-body">
<div class="avatar-body">
<div class="avatar-upload">
<input class="avatar-src" name="avatar_src" type="hidden">
<input class="avatar-data" name="avatar_data" type="hidden">
<a href="javascript:void(0);" class="task-btn task-btn-blue ml5" type="button" onClick="$('input[id=avatarInput]').click();">本地上传</a>
<span id="avatar-name"></span>
<input class="avatar-input" style="display:none;" id="avatarInput" name="avatar_file" type="file">
<input type="hidden" id="source_id" value="<%= @user.id %>"/>
<input type="hidden" id="source_type" value="User"/>
</div>
<div class="row clearfix">
<div class="task-form-45 fl panel-box-sizing">
<div class="avatar-wrapper" style="text-align: center;">
<span style="display: block; margin-top:150px;">选择你要上传的图片<br/>
仅支持JPG、GIF、PNG且文件小于2M</span>
</div>
</div>
<div class="task-form-50 panel-box-sizing fr color-grey" style=" text-align: center; padding-top:30px;">
<span>预览(请注意是否清晰)<br/></span>
<div class="fl ">
<div class="avatar-preview preview-lg" id="imageHead">
</div>
<span>尺寸240*240像素</span>
</div>
<div class="fl ml15">
<div class="avatar-preview preview-md" id="imageHead"></div>
<span>尺寸100*100像素</span>
<div class="avatar-preview preview-sm" id="imageHead"></div>
<span>尺寸40*40像素</span>
</div>
</div>
</div>
<div class="row avatar-btns">
<div class="task-form-50 fl">
<div class="btn-group">
<a href="javascript:void(0);" class="task-btn fa fa-undo fl" data-method="rotate" data-option="-90" type="button" title="Rotate -90 degrees">
向左旋转</a>
</div>
<div class="btn-group">
<a href="javascript:void(0);" class="task-btn fa fa-repeat fl ml10" data-method="rotate" data-option="90" type="button" title="Rotate 90 degrees">
向右旋转</a>
</div>
<div class="cl"></div>
</div>
<div class=" fr">
<a href="javascript:void(0);" class="avatar-save task-btn task-btn-blue fa fa-save mt5" data-dismiss="modal"> 保存修改</a>
</div>
<div class="cl"></div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script>
$(function () {
new CropAvatar($('#crop-avatar'), 1/1);
//---------------------------头像上传-----------------------------//
//做个下简易的验证 大小 格式
$('#avatarInput').on('change', function(e) {
var filemaxsize = 1024 * 5;//5M
var target = $(e.target);
var Size = target[0].files[0].size / 1024;
if(Size > filemaxsize) {
alert('图片过大,请重新选择!');
$(".avatar-wrapper").children().remove;
return false;
}
if(!this.files[0].type.match(/image.*/)) {
alert('请选择正确的图片!')
} else {
var filename = document.querySelector("#avatar-name");
var texts = document.querySelector("#avatarInput").value;
var teststr = texts; //你这里的路径写错了
testend = teststr.match(/[^\\]+\.[^\(]+/i); //直接完整文件名的
filename.innerHTML = testend;
$(filename).css("color", '#333');
}
});
$(".avatar-save").on("click", function() {
var img_lg = document.getElementById('imageHead');
if($(img_lg).html().trim() == ""){
$("#avatar-name").html("请先选择图片上传").css("color", 'red');
} else {
$("#avatar-name").html("").css("color", '#333');
// 截图小的显示框内的内容
html2canvas(img_lg, {
allowTaint: true,
taintTest: false,
onrendered: function(canvas) {
canvas.id = "mycanvas";
//生成base64图片数据
var dataUrl = canvas.toDataURL("image/jpeg");
var newImg = document.createElement("img");
newImg.src = dataUrl;
imagesAjax(dataUrl);
$(".avatar-save").attr("disabled","true");
}
});
}
});
function imagesAjax(src) {
var data = {};
data.img = src;
data.source_id = $('#source_id').val();
data.source_type = $('#source_type').val();
data.is_direct = 0;
$.ajax({
url: "<%= upload_avatar_path() %>",
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: data,
type: "POST",
success: function (re) {
console.log(re);
if(re){
var o = JSON.parse(re);
if (o.status !=0 ){
console.log(o.message);
} else {
long_notice_box("上传成功");
window.location.reload();
}
} else {
long_notice_box("上传出错");
}
},
error: function (e) {
alert(e);
}
});
}
})
</script>