cropper本地预览 裁剪,上传到服务器

坑爹啊, 搞了2天,主要是昨天一直在搞 jcrop,这玩意不能缩放图片。 

如果容器定为600px ,从本地选一张大于600px的图片,那么到容器里会压缩, scrop获取不到图片的真实位置,导致上传到后台后,后台裁剪的图片不对


今天重新用cropper搞,终于搞好了。

  步骤:

    1  通过 本地 选择图片,预览,通过 选取框,选取一个正方形区域(可以设置大小和形状)

     2 本地获取 左顶点坐标(x,y), 和宽度 高度 4个参数

     3 然后通过 form表单提交到后台 即可

     4 后台 先把源文件存放,然后通过一个工具类 把源文件根据这4个参数 裁剪,生成一张图片, 

     5 我这里是通过 jquery form。js 提交 ,根据后台返回的json 关闭弹出框,并且把头像 src改为新设置的


效果:





前端 源代码:


  <pre>

   

<%@page import="org.w3c.dom.Document"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>




<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";

 
%>












<!DOCTYPE html>
<html>
<head>


<meta charset="UTF-8">


<base href="<%=basePath%>">




   <!--   bootstrap 样式  默认需要-->
  <link rel="stylesheet" href="components/FontAwesome4.4/css/font-awesome.min.css">
  <link rel="stylesheet" href="components/bootstrap/css/bootstrap.min.css">
  <link rel="stylesheet" href="components/cropper/dist/cropper.css">
 


     <!-- 首页左侧 折叠菜单 -->
 <link rel="stylesheet" href="css/main_leftmenu01.css">
 
   <!-- 设置头像弹出框 -->
  <link rel="stylesheet" href="css/cutUserFace.css">
  


   <!-- jquery和bootstrap 默认都需要 -->
<script src="js/jquery.min.js"></script>
<script src="components/bootstrap/js/bootstrap.min.js"></script>
 
  <script src="components/cropper/dist/cropper.js"></script>
  


     <!-- 首页左侧 折叠菜单 -->
     
<script src="js/main_leftmenu01.js"></script>


 <script src="js/jquery-form.js"></script> 
 <script src="components/layer2/layer/layer.js"></script>  
 




<script language="JavaScript"> 


 /* 跳出iframe */
   if (window != top) 
  
  {
         top.location.href = location.href; 
 
         //parent.location.reload();   
  
   }
 
 
 
 
</script>








  
  






<!-- <script src="components/layer2/layer/layer.js"></script> -->
 
<style type="text/css">




body {
margin: 0;
padding: 0;
border: 0;
height: 100%;
max-height: 100%;
}


a {
color:#ffffff;
}


a:visited {
 color:#ffffff;
text-decoration: none;
}


a:active {
  color:#ffffff;
text-decoration: none;
}
/* hover一定要放在最后面*/
a:hover {
 color:#ffffff;
text-decoration: none;
}






/*    主界面 top */
#toptitle {
position: absolute;
top: 0;
left: 0;
height: 100px;
color: #ffffff;
width: 100%;
overflow: hidden;
vertical-align: middle;
background-color: #317eb4;
}




 /* 左边菜单 */
#leftmenu {
position: fixed;
top: 100px;
left: 0;
height: 100%;
width: 180px;
overflow: auto;
vertical-align: top;
background-color: #585858;
}


/*  右边内容iframe容器 */
#maincontent {
position: fixed;
left: 180px;
top: 100px;
right: 0;
bottom: 0;
height: 100%;
overflow: auto;
background: #fff;
/* border-top: solid 1px #ea1718;
            border-left: solid 1px #ea1718;*/
}


 
</style>






<script type="text/javascript" language="javascript">


     //自动测算内容区域的高度
function iFrameHeight() {
var ifm = document.getElementById("content");
var subWeb = document.frames ? document.frames["content"].document: ifm.contentDocument;
if (ifm != null && subWeb != null) {
 

ifm.height = subWeb.body.scrollHeight;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值