系统由两个大的页面组成:第一个是登录页面,第二个是主页面。
一,登录页面
1-获取到表单数据。
获取到页面需要用到的数据:工号,密码,验证码,记住我的按钮。
2-数据验证。
2.1-判断工号和密码不允许为空,
查询登录的用户数据通过Linq方法。
2.2-生成验证码和验证图片,将生成的验证码字符串保存到Session,将验证图片返回到页面,
检查用户输入的验证码是否正确,从session中获取出保存的验证码字符串,验证用户输入的验证码和session中的验证码是是否相同 忽略大小写
2.3-验证用户的工号和密码是否匹配
-查询登录的用户数据
linq 单表查询的写法
(from 自定义的表名 in Model对象.查询的表
【where 自定义的表名.字段1 关系运算符 值
【&& 自定义的表名.字段2 关系运算符 值】】
【orderby 自定义的表名.字段】
【select 自定义的表名】
【select new {[属性名1= ]自定义的表名.字段1,
[属性名2= ]自定义的表名.字段2,
[属性名3= ]自定义的表名.字段3,
…
}】
【select 类名{ 类的属性1=自定义的表名.字段1,
类的属性2=自定义的表名.字段2,
…
}】
).Single();//查询单条数据,当没有数据或者有多条数据时会触发异常
.SingleOrDefault();//查询单条数据,当没有数据返回默认值(对象的默认值为null);当有多条数据时触发异常
.ToList();//查询多条数据并转为List
.Count();//查询有多少条数据
//查询单条数据.Single();
S_User dbUser = (from tabUser in myModel.S_User
where tabUser.jobNumber == jobNumber
select tabUser).Single();
-判断用户输入的密码和数据库中的密码是否相同
-对用户输入的密码进行AES加密 -将加密后的数据和数据库中查询的用户密码比较
2.4-保存用户信息到session,用户ID,用户工号
Session[“userID”] = dbUser.userID;
Session[“jobNumber”] = dbUser.jobNumber;
Session[“userModules”] = userModules;
2.5-处理记住我这个功能 使用cookie实现
-判断是否勾选"记住我"
3-将数据返回到页面
-数据提交
3.1-开启加载层 加载层一般在网络请求前打开
var layerIndex = layer.load();
3.2 – 数据转接口
$.post(“”,{参数},function(msg){
//在网络请求的回调的最前面关闭加载层
layer.close(layerIndex);
返回数据
if (msg.State) {
} else {}
图片(文件)的上传
定义:把文件保存到磁盘上,然后把文件名称(路径)保存到数据库,原因是避免相互就看体积过于增长导致索引速度变慢。
到数据库新增一条名叫picture ,更新model。
1.到css写一条img标签,写一个双击事件,指定样式
<img src"" id="" οndblclick="" style="" />
文件选择控件:
2.双击图片 触发 文件输入框的点击事件
3.显示图片
-var imageReader = new FileReader();//文件读取器
-图片文件 正则表达式过滤image/jpeg,image/png,image/jpg,image/gif,image/bmp
-文件读取器onload事件 在读取文件完成后触发
4.文件输入框改变事件,改变时读取图片
-获取文件输入框里面的文件
-判断获取的文件是否是需要的文件类型
-使用文件读取器读取文件。并把文件转为URL(Base64编码)
5.发送请求,使用JQuery ajax发送FormData数据,构建FormData数据
文件上传时只能使用post提交,不能使用get提交