资讯详情

OA之我的会议(会议排座&送审)

一、会议排座插件介绍

需求背景:

1.实现思路:

2.明确开发会议座位的意义

1.查询会议中的所有参与者。2.需要完成页面上元素的拖动功能,并将相应的参与者放在指定的位置,如:重要人员放在主位置3。保存已绘制的会议座位图,并绑定到会议数据中;

1.查找资料

2.分析现有材料的不足

3.修改现有材料的不足

4.分析现有材料,如何与业务需求相关联(最重要的一步)

5.content只有这样,我们才能通过代码来确定图片存储在哪里

六、开始写我们的会议座位

二、会议参与用户数据初始化

三、生成和展示会议排座图片

1.保存已绘制的会议座位图,并绑定到会议数据上;

四、会议送审


1.会议排座插件介绍

我们没有会议桌。考虑到简单性,我们删除了它。但是项目桌将用于公司的一些项目

需求背景:

集团公司的日常管理会议和人事任命会议

1.实现思路:

①、查找资料

做选择,哪一个素材更适合完成需求

②、素材改造

材料缺陷:

1)样式:座椅小方块重叠/太小

2)截图区域大小

3)滚动条截图的问题需要解决

思考:

a、找到js连接到当前素材的功能p

           b、查看素材源码,分析作者是依靠屏幕大小截屏还是html元素定位截屏(优先考虑)

③、代码预演

④、前后台代码整合

⑤、功能微调及实现

⑥、变种需求的完成

 2.明确了开发会议排座的意义

思考如何去完成这个功能?

2.页面上元素的拖动功能(特殊的功能)     出发点:可以自己写、网上会有素材     流程:先找网上素材,改动素材中的源码,变为自己想要的     1.找网上素材,多找几个,挑出一个最适合的     2.分析现有素材的不足         ①、发现元素重叠,无法判定有几个人参会         ②、元素块太小看不清     3.修改现有素材的不足     4.分析现有素材,怎么与业务需求进行关联(最重要的一步)         其实需要做的是,查看源代码,分析图片生成的原因/步骤         下载 按钮是绑定了一个方法,这个主要的方法是downloadFile方法         downloadFile方法有两个参数:FileName、content,接下就是思考哪个参数与图片有关系         结论:通过分析downloadFile方法中content参数就代表了那张图片-前端

5.content需要传递到后台,并且生成图片,只有这样,我们才能通过代码决定图片存放在哪里         ①、怎么传后台-$.post             $.get(不行的,因为参数太大)    错         ②、String content 字符串要转换成图片

 1.查找资料

 1.找网上素材,多找几个,挑出一个最适合的 

可以去网上搜索如图所示:

点进去里有div还有HTML代码还有css还有js方法,通过这种方法找到几种案例如图所示:

第一种:

第二种:

第二种可以拖动但它是移到下面去了如图所示:这种就不符合 

 但第一种的可以:它添加的座位就会被覆盖,不太友好,但可以拖动,所以说我们从网上拿到的素材不一定符合,所以我们要改把改把。

2.分析现有素材的不足

 ①、发现元素重叠,无法判定有几个人参会  ②、元素块太小看不清

 3.修改现有素材的不足 

这个方块的样式取决于谁如图所示:

我们就来改变它的展示形式如图所示: 

 最终素材改造如图所示:

 我们可以下载一下如图所示:就贴近了我们最上面的那张图了,就是没有桌子

  4.分析现有素材,怎么与业务需求进行关联(最重要的一步)

但我们下载的时候它是指定位置,而不能我想下载哪里就下载哪里 

其实需要做的是,查看源代码,分析图片生成的原因/步骤 

  下载 按钮是绑定了一个方法,这个主要的方法是downloadFile方法         downloadFile方法有两个参数:FileName、content,接下就是思考哪个参数与图片有关系         结论:通过分析downloadFile方法中content参数就代表了那张图片-前端

 5.content需要传递到后台,并且生成图片,只有这样,我们才能通过代码决定图片存放在哪里

"data:image/png;base64,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"  

 我们数据库里有一个Base64ImageUtils.java代码块,

 我们最终要改的效果如图所示:

运行一下:

 六、开始写我们的会议排座

当我们点击会议排座的时候是不是要弹出一个页面出来所以我们就新建一个jsp

     seatPic.jsp代码块: 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="${pageContext.request.contextPath }/"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="static/js/layui/css/layui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="static/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="static/js/layui/layui.js"></script>
<script type="text/javascript" src="static/js/plugins/html2canvas/html2canvas.js"></script>
<title>会议座位安排</title>
</head>
<style type="text/css">
* {
	padding: 0;
	margin: 0;
}
		
body{
	width: 100%;
	height: 100%;
	/* background: red; */
}

.tips {
	/* position: absolute; */
	background: pink;
	display: inline-block;
	height: 60px;
	/* width: 60px; */
	line-height: 60px;
	text-align: center;
	margin: 5px;
	padding: 0 10px;
}

.add {
	position: fixed;
	right: 10px;
	top: 10px;
	display:inline;
}

#tu {
	width: 100%;
	height: 100%;
	/* background: lightblue; */
		/*background: url('u=3318199716,2583790385&fm=26&gp=0.jpg');*/
}
.layui-input{
	height:30px;
}
</style>
<body id="screen_body">
    <div id="tu"></div>
    <!-- 下面不要使用layui的表单行内模式,会导致canvas的toDataURL()数据为 data:, -->
	<div class="add">
		<div style="display:inline-block;">
			<input id="dan_input" type="text" value="" class="layui-input">
		</div>
		<div style="display:inline-block;">
			<button onclick="return addDanMu()" class="layui-btn layui-btn-sm">添加座位</button><input id="jie_input" type="button" class="layui-btn layui-btn-sm" value='下载'>
		</div>
	</div>
</body>
<script type="text/javascript">
var $id = function(id) {
	return document.getElementById(id);
}
//会议排座拖拽
var dragF = {
	locked: false,
	lastObj: undefined,
	drag: function(obj) {
		$id(obj).onmousedown = function(e) {
			var e = e ? e : window.event;
			if (!window.event) {
				e.preventDefault();
			} /* 阻止标注<a href='/site/js-5791-1.html' target='_blank'><u>浏览器</u></a>下拖动a,img的默认事件 */
			dragF.locked = true;
			$id(obj).style.position = "absolute";
			$id(obj).style.zIndex = "100";
			if (dragF.lastObj && dragF.lastObj != $id(obj)) { /* 多元素拖动需要恢复上次元素状态 */
				dragF.lastObj.style.zIndex = "1";
			}

			dragF.lastObj = $id(obj);
			var tempX = $id(obj).offsetLeft;
			var tempY = $id(obj).offsetTop;

			dragF.x = e.clientX;
			dragF.y = e.clientY;
			document.onmousemove = function(e) {
				var e = e ? e : window.event;
				if (dragF.locked == false) return false;
				$id(obj).style.left = tempX + e.clientX - dragF.x + "px";
				$id(obj).style.top = tempY + e.clientY - dragF.y + "px";
				if (window.event) {
					e.returnValue = false;
				} /* 阻止ie下a,img的默认事件 */

			}

			document.onmouseup = function() {
				dragF.locked = false;
			}
		}
	}
}
</script>

<script type="text/javascript">
var layer;
layui.use(['layer'],function(){
	layer=layui.layer;

    //初始化会议排座:根据会议ID获取参会的所有人员的名字(主持人+参会人+列席人)
	initMeetingUsers();
	
	//绘制会议排座图片
	$("#jie_input").on("click", function(event) {
		$('.add').hide();
		event.preventDefault();
		html2canvas(document.getElementById("screen_body")).then(function(canvas) {
			var dataUrl = canvas.toDataURL();
			console.log(dataUrl);
			var param = {};
			param['seatPic'] = dataUrl;
			param['id'] = '${param.id}';
			param['methodName']='updateSeatPicById';
			console.log(param);
			//此处需要完成会议排座图片上传操作
			$.post('${pageContext.request.contextPath }/info.action',param,function(rs){
				if(rs.success){
					//先得到当前iframe层的索引
					var index = parent.layer.getFrameIndex(window.name); 
					//再执行关闭
					parent.layer.close(index); 
					//调用父页面的刷新方法
					parent.query();
				}else{
					layer.msg(rs.msg,{icon:5},function(){});
				}
			},'json');
		});
	});
});

function initMeetingUsers(){
	//http://localhost:8080/xxx/seatPic.jsp?id=12  -> ${param.id}
	$.getJSON('${pageContext.request.contextPath }/user.action',{
		'methodName':'queryUserByMeetingId',
		'meetingId':'${param.id}'
	},function(rs){
		console.log(rs);
		let data=rs.data;
		$.each(data,function(i,e){
			$('#dan_input').val(e.name);
			addDanMu();
		});
	});
}


//添加会议排座
function addDanMu() {
	var dan = document.getElementById("dan_input").value;
	if (dan == "") {
		alert("请输入弹幕~");
		return false;
	} else {
		document.getElementById("dan_input").value = ""; //清空 弹幕输入框
		// var br = document.createElement("BR");  // <br />
		var node = document.createElement("DIV"); // <div>
		var tipsArr = document.getElementsByClassName('tips');
		var i;
		// console.log(parseInt(tipsArr[tipsArr.length-1].id.substr(4))+1);
		if (tipsArr.length == 0) {
			i = 1
		} else {

			i = parseInt(tipsArr[tipsArr.length - 1].id.substr(4)) + 1;
		}
		// var aNode = document.createElement("P");   // <p>
		node.setAttribute("class", "tips");
		node.setAttribute("id", "tips" + i);
		node.setAttribute("onmouseover", "dragF.drag('tips" + i + "');");
		var textnode = document.createTextNode(dan); // 创建个 文本节点, 将用户输入的弹幕,存入 创建的 元素节点 <p>  中
		// aNode.appendChild(textnode);
		node.appendChild(textnode);
		// document.body.appendChild(br);
		// document.body.appendChild(node);

		document.getElementById("tu").appendChild(node);
		return true;
	}
}
	</script>
</html>

 我们就要在我们上次我的会议里面js代码继续编写我们的代码:

 myMeeting.js代码块:

let layer,$,table;
var row;
layui.use(['jquery', 'layer', 'table'], function(){
	layer = layui.layer
	,$ = layui.jquery
	,table = layui.table;
	//初始化数据表格
	initTable();
	//绑定查询按钮的点击事件
	$('#btn_search').click(function(){
		query();
	});
	
});

//1.初始化数据表格
function initTable(){
	table.render({           //执行渲染
        elem: '#tb',         //指定原始表格元素选择器(推荐id选择器)
//        url: 'user.action?methodName=list',     //请求地址
        height: 340,         //自定义高度
        loading: false,      //是否显示加载条(默认 true)
        cols: [[             //设置表头
            {field: 'id', title: '会议编号', width: 120},
            {field: 'title', title: '会议标题', width: 120},
            {field: 'location', title: '会议地点', width: 140},
            {field: 'startTime', title: '开始时间', width: 220},
            {field: 'endTime', title: '结束时间', width: 120},
            {field: 'meetingstate', title: '会议状态', width: 120},
            {field: 'seatPic', title: '会议排座', width: 140,templet: function(d){
            	console.log(d);
            	//得到当前行数据,并拼接成自定义模板
                return '<img src="'+d.seatPic+'">'}
            },
            {field: 'auditor', title: '审批人', width: 140},
            {field: '', title: '操作', width: 220,toolbar:'#tbar'},
        ]]
    });
	
	//在页面中的<table>中必须配置lay-filter="tb_goods"属性才能触发属性!!!
	table.on('tool(tb)', function (obj) {
		row = obj.data;
		if (obj.event == "seat") {
			open(row.id);
		}else if(obj.event == "send"){
			layer.msg("送审");
		}else if(obj.event == "del"){
			layer.msg("取消会议");
//			把我们的会议状态改为0
		}else if(obj.event == "back"){
			layer.msg("反馈详细");
//			把我们的会议状态改为0
		}else{

		}
	});
	
	
	
}
//2.点击查询
function query(){
//	console.log($("#ctx").val());
	table.reload('tb', {
        url: 'info.action',     //请求地址
        method: 'POST',                    //请求方式,GET或者POST
        loading: true,                     //是否显示加载条(默认 true)
        page: true,                        //是否分页
        where: {                           //设定异步数据接口的额外参数,任意设
        	'methodName':'myInfos',
        	'title':$('#title').val(),
        	'zhuchiren':$('#zhuchiren').val()
        },  
        request: {                         //自定义分页请求参数名
            pageName: 'page', //页码的参数名称,默认:page
            limitName: 'rows' //每页数据量的参数名,默认:limit
        }
   });
}

//打开会议排座对话框
function open(id){
	layer.open({
        type: 2,                    //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
        title: '会议排座',                   //对话框标题
        area: ['460px', '340px'],   //宽高
        skin: 'layui-layer-rim',    //样式类名
        content: $("#ctx").val()+'/jsp/meeting/seatPic.jsp?id='+id,                //弹出内容。可以传入普通的html内容,还可以指定DOM,更可以随着type的不同而不同
    });
}

 运行结果就出来了:

我们现在希望我查询了那些人就绑定上去,现在我们这个是手动添加上去的吧

二、会议参与用户数据初始化

1.将 会议排座3.html 转变成jsp页面,本质上就是将某一条会议数据的所有参与人员查询出来     点击会议排座应该要默认初始化参会人员 

-- 会议排座用户查询
select * from t_oa_meeting_info where id=6
-- 最终希望查询出这样的结果
select * from t_oa_user where id in (1,2,3,4,5)
-- 这行代码就等价于上面的   1,2,3,4,5
select CONCAT(canyuze,',',liexize,',',zhuchiren) from t_oa_meeting_info where id=6
-- 实际结果
select * from t_oa_user where id in ('1,2,3,4,5')

select * from t_oa_user where id in (select CONCAT(canyuze,',',liexize,',',zhuchiren) from t_oa_meeting_info where id=6)

-- FIND_IN_SET
-- 第一个参数:数据库列段
-- 第二个参数:是列段的条件
select * from t_oa_user where FIND_IN_SET(id,(select CONCAT(canyuze,',',liexize,',',zhuchiren) from t_oa_meeting_info where id=6))

 最终想要的结果如图所示:

我们就要去UserAction里面写这个方法: 

 

 UserAction.java代码块:

package com.zking.web;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zking.dao.UserDao;
import com.zking.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.R;
import com.zking.util.ResponseUtil;

public class UserAction extends ActionSupport implements ModelDriver<User>{

	private User user = new User();
	private UserDao userDao = new UserDao();
	
	public String login(HttpServletRequest req, HttpServletResponse resp) {
		try {
//			调用我们的login方法
			User u = userDao.login(user);
//			通过账户名密码查到了用户记录
			if(u!=null) {
//				ResponseUtil.writeJson(resp, new R()
//						.data("code",200)
//						.data("msg","登录成功"));
//				这个就是我们刚刚为什么要更换util所以数据我举例的R().java
//				上面的就等价于下面这段代码
				ResponseUtil.writeJson(resp, R.ok(200, "登录成功"));
//				此时我们的session中是包含了我们当前登录的用户id
				req.getSession().setAttribute("user", u);
			}
			else {
				ResponseUtil.writeJson(resp, R.error(0, "用户名密码错误"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "用户名密码错误"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
//	会议的参与人
	public String queryUserByMeetingId(HttpServletRequest req, HttpServletResponse resp) {
		try {
			String meetingId = req.getParameter("meetingId");
			List<User> users = userDao.list(Integer.valueOf(meetingId));	
//			注意:layui中的数据格式
			ResponseUtil.writeJson(resp, R.ok(0, "会议用户数据初始化询成功", users));
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "会议用户数据初始化错误"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
//	用户查询
	public String list(HttpServletRequest req, HttpServletResponse resp) {
		try {
			PageBean pageBean = new PageBean();
			pageBean.setRequest(req);
			List<Map<String, Object>> users = userDao.list(user, pageBean);	
//			注意:layui中的数据格式
			ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询成功", pageBean.getTotal(), users));
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "用户数据查询错误"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
//	查询所以用户于绑定多功能下拉框
	public String queryUserAll(HttpServletRequest req, HttpServletResponse resp) {
		try {
			List<Map<String, Object>> users = userDao.queryUserAll(user, null);	
//			注意:layui中的数据格式
			ResponseUtil.writeJson(resp, R.ok(0, "多功能下拉框数据查询成功", users));
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "多功能下拉框数据查询错误"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
	
//	用户增加
	public String add(HttpServletRequest req, HttpServletResponse resp) {
		try {
//			n是sql语句执行的影响行数
			int n=userDao.add(user);
//			如果大于0说明可以新增
			if(n>0) {
				ResponseUtil.writeJson(resp, R.ok(200, "用户数据新增成功"));
			}
			else {
				ResponseUtil.writeJson(resp, R.ok(0, "用户数据新增失败"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "用户数据新增失败"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
//	用户删除
	public String del(HttpServletRequest req, HttpServletResponse resp) {
		try {
//			n是sql语句执行的影响行数
			int n=userDao.del(user);
//			如果大于0说明可以删除
			if(n>0) {
				ResponseUtil.writeJson(resp, R.ok(200, "用户数据删除成功"));
			}
			else {
				ResponseUtil.writeJson(resp, R.ok(0, "用户数据删除失败"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "用户数据删除失败"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
//	用户修改
	public String edit(HttpServletRequest req, HttpServletResponse resp) {
		try {
//			n是sql语句执行的影响行数
			int n=userDao.edit(user);
//			如果大于0说明可以修改
			if(n>0) {
				ResponseUtil.writeJson(resp, R.ok(200, "用户数据修改成功"));
			}
			else {
				ResponseUtil.writeJson(resp, R.ok(0, "用户数据修改失败"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			try {
				ResponseUtil.writeJson(resp, R.error(0, "用户数据修改失败"));
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return null;
	}
	
	@Override
	public User getModel() {
		// TODO Auto-generated method stub
		return user;
	}

}

UserDao.java代码块:

package com.zking.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.zking.entity.User;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
import com.zking.util.StringUtils;

public class UserDao extends BaseDao<User>{
	
	public User login(User user) throws Exception {
		String sql="select * from t_oa_user where loginName='"+user.getLoginName()+"' and pwd='"+user.getPwd()+"'";
//		根据sql查询符合条件的用户,通常只会返回一条数据
		List<User> users = super.executeQuery(sql, User.class, null);
		return users==null || users.size()==0?null:users.get(0);
//		return super.executeQuery(sql, clz, pageBean);
	}
	
//	查询用户信息及对应的角色,角色是通过case when得来的
	public List<Map<String, Object>> list(User user,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{
		String sql="select *\r\n" + 
				",(case rid \r\n" + 
				"when 1 then '管理员 '\r\n" + 
				"when 2 then '发起者 '\r\n" + 
				"when 3 then '审批者 '\r\n" + 
				"when 4 then '参与者 '\r\n" + 
				"when 5 then '会议室管理员 '\r\n" + 
				"else '其他'  end) roleName \r\n" + 
				"from \r\n" + 
				"t_oa_user where 1 = 1 ";
//		有可能根据搜索的名字查询
		String name = user.getName();
		//判断是否为空
		if(StringUtils.isNotBlank(name)) {
//			不为空然后就拼接上sql语句
			sql+=" and name like '%"+name+"%'";
		}
//		当实体类的属性完全包含数据库查询出来的列段的时候使用
//		super.executeQuery(sql, User.class, pageBean)
//		返回List<Map<String,Object>>,对应的是链表查询,单个实体类对象不完全包含查询的列段
		return super.executeQuery(sql, pageBean);
	}
	
//	查询所以用户用于绑定多功能下拉框
	public List<Map<String, Object>> queryUserAll(User user,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{
		String sql="select id as value,name from t_oa_user";
//		要分页万一我的用户有百来条
		return super.executeQuery(sql, pageBean);
	}
	
	
//	新增
	public int add(User user) throws Exception {
		String sql="insert into t_oa_user(name,loginName,pwd) values(?,?,?)";
		return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd"});
	}
	
//	删除
	public int del(User user) throws Exception {
		String sql="delete from t_oa_user where id=?";
		return super.executeUpdate(sql, user, new String[] {"id"});
	}
	
//	修改
	public int edit(User user) throws Exception {
		String sql="update t_oa_user set name=?,loginName=?,pwd=? where id=?";
		return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd","id"});
	}

	public List<User> list(Integer meetingId) throws Exception {
		String sql="select * from t_oa_user where FIND_IN_SET(id,(select CONCAT(canyuze,',',liexize,',',zhuchiren) from t_oa_meeting_info where id="+meetingId+"))";
		return executeQuery(sql, User.class, null);
	}
}

我们在运行一下如图所示:

 导入资料中的三个文件进入工程

第一个就是seatPic.jsp代码块我们copy了

第二个就是 html12canvas.js

第三个就是 jqury-3.3.1.min.js

我所放在的位置如图所示:

我们赋值过去就要对应好位置放入这张图就是我们F12检查出来的如图所示:

  

现在我们在来测试一下如图所示:

 三、会议排座图片生成及展示

 

当我们点击下载的时候图片的字符串要传递到后台去,而这个字符串的字节很长如图所示:

 $.get(不行的,因为参数太大)

①、怎么传后台-$.post

所以说我们要用post提交,当我们点击下载的时候是不是触发了这个事件如图所示:

 通过这个方法调用里面的这个方法帮我把这个图片保存到后台的某一个磁盘里面去

保存在哪里面就是这个里面:

dirPath=E:/temp/images/T280/
serverPath=/test_layui/upload/paizuo/
dirPathSign=E:/temp/images/T280/sign/
serverPathSign=/test_layui/upload/sign/

我们就把这个保存在如图所示:

在通过我们之前学过的映射,实际就是通过浏览器访问就相当于查询访问如图所示:

 Base64ImageUtils.java代码块:

package com.zking.util;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Base64ImageUtils {
	public static void main(String[] args) {
		// 娴嬭瘯浠嶣ase64缂栫爜杞崲涓哄浘鐗囨枃浠�
		// String strImg =
		// "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";
		// 浣跨敤index.js涓� 淇濆瓨鍥剧墖涓璫onsole.log(url) 鏇挎崲鎴恠trImg

		String strImg = "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\"";
//		String strImg ="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

标签: 固态电容ulgske线绕电阻器制动电阻器二极管丝印z16sa6抑制二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台