文件上传依赖:

 <!-- 文件上传组件 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency> <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>

在springmvc配置文件中增加解析器:

<!--SpringMvc文件上传时,需要配置MultipartResolver处理器  -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10485760"></property>
</bean>

引入JS----jquery.form.js

<!--最基础jQuery.js都是基于这个  -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resouces/jquery-1.11.3.min.js"></script>
<!-- 异步转换参数js -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resouces/jqueryExt.js"></script>
<!-- 上传文件js -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resouces/jquery.form.js"></script>

页面表单设置:

<!--form提交表单  -->
<form class="form-horizontal" id="form1" enctype="multipart/form-data"> <div class="row clearfix">
<div class="form-group">
<label class="col-sm-1 control-label">编号:</label>
<div class="col-md-2 column">
<!--编号 -->
<input type="hidden" id="Staff_ID" class="form-control" name="Staff_ID" placeholder="请输入">
<input type="text" id="Staff_No" class="form-control" readonly name="Staff_No" placeholder="">
</div> <label class="col-sm-1 control-label">工号:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Code" onblur="setStaffId()" class="form-control" name="Staff_Code" placeholder="请输入工号">
</div> <label class="col-sm-1 control-label">姓名:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Name" class="form-control" name="Staff_Name" placeholder="请输入姓名" >
<span class="required" id="sp1">*</span>
</div> </div>
</div> <div class="row clearfix">
<div class="form-group">
<label class="col-sm-1 control-label">用户名:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_LoginName" class="form-control" name="Staff_LoginName" placeholder="请输入用户名">
<span class="required" id="sp3">*</span>
</div>
<label class="col-sm-1 control-label">密码:</label>
<div class="col-md-2 column">
<input type="password" id="Staff_Pass" class="form-control" name="Staff_Pass" placeholder="请输入密码">
</div>
<label class="col-sm-1 control-label">职称:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Title" class="form-control" name="Staff_Title" placeholder="请输入职称">
<span class="required" id="sp2">*</span>
</div>
</div>
</div> <div class="row clearfix">
<div class="form-group">
<label class="col-sm-1 control-label">级别:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Level" class="form-control" name="Staff_Level" placeholder="请输入级别">
</div>
<label class="col-sm-1 control-label">图片:</label>
<div class="col-md-3 column">
<input type="file" name="goodsImage"/>
</div>
<label class="col-sm-1 control-label">状态:</label>
<div class="col-md-2 column">
<select class="form-control" name="Staff_Enable">
<option value="1">启用</option>
<option value="0">注销</option>
</select>
</div> </div>
</div> <input type="button" id="saveUploadOrUpdate" data-toggle='modal' data-target='#myModal' class="btn btn-primary" value="保存">
</form>
/* 上传文本图片和修改 */
$(document).on("click","#saveUploadOrUpdate",function(){
$("#form1").ajaxSubmit({
url:"userss/saveUploadOrUpdate",
type:"post",
contentType:"application/x-www-form-urlencoded; charset=utf-8",
dataType:"text",
success:function(data){
alert(data);
queryUsers(1);
}
});
});

控制器中实现文件上传:

/*添加内容上传图片和修改*/
@RequestMapping("/saveUploadOrUpdate")
public void saveTbGoods(@RequestParam("goodsImage") MultipartFile file,StaffInfo tb,HttpServletRequest request,HttpServletResponse response) throws IOException{
System.out.println("文件:"+file+"参数:"+tb);
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
String pathName=transfer(file, request);//调用上传文件transfer方法得到文件路径
tb.setStaff_Pic(pathName);//添加set文件路径到数据库
int i=userServices.saveOrUpdateStaffInfo(tb);
if(i>0){
out.print("添加成功!");//往前台打印text文本格式
}else{
out.print("添加失败!");
}
}
/*上传文件*/
private String transfer(MultipartFile file,HttpServletRequest request){
//获取目标文件要存放的目录的绝对路径
String path=request.getServletContext().getRealPath("/resouces/upload");
String fileName=file.getOriginalFilename();//获取原始的文件名
File tranFile=new File(path,fileName);//创建目标文件对象
if(!tranFile.exists()){//如果目录不存在
tranFile.mkdirs();//创建目录
}
try {
file.transferTo(tranFile);//文件上传
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return request.getContextPath()+"/resouces/upload/"+fileName;
}

如何显示:

tr+="<td><img style=' width:90px; height:60px;' src='"+obj.Staff_Pic+"'/></td>";

jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isELIgnored="false"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<!-- 使用模态窗口引入bootstrap -->
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath}/resouces/js/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath}/resouces/js/bootstrap/css/bootstrap-theme.min.css">
<script src="${pageContext.request.contextPath}/resouces/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/resouces/js/bootstrap/js/bootstrap.min.js"></script>
<!--最基础jQuery.js都是基于这个 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resouces/jquery-1.11.3.min.js"></script>
<!-- 异步转换参数js -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resouces/jqueryExt.js"></script>
<!-- 上传文件js -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resouces/jquery.form.js"></script>
</head> <body>
<table class="table table-hover">
<thead >
<tr class="success">
<th>员工序号</th>
<th>员工编号</th>
<th>员工工号</th>
<th>员工姓名</th>
<th>用户名</th>
<th>员工密码</th>
<th>员工职称</th>
<th>员工级别</th>
<th>员工图片</th>
<th>是否启用</th>
<th colspan="3">查询
<input type="text" onblur="queryUsers()" size="7" class="goodsName" id="goodsNames" placeholder="请输入姓名" name="goodsName">
<%-- <input type="text" onblur="queryTbGoods()" size="6" class="goodsName" id="typeNames" placeholder="请输入类型" name="typeName">--%>
<input type="button" data-toggle="modal" data-target="#myModal" class="emptys btn btn-default" value="添加">
</th> </tr>
</thead>
<tbody id="tbody"> </tbody>
</table> <!-- 模态框弹出录入内容 -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
aria-labelledby="modalTitle1" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content" style="width:760px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">
&times;
<!-- 关闭按钮 -->
</button>
<h4 class="modal-title" id="modalTitle1">录入员工</h4>
</div>
<div class="modal-body"> <!--form提交表单 -->
<form class="form-horizontal" id="form1" enctype="multipart/form-data"> <div class="row clearfix">
<div class="form-group">
<label class="col-sm-1 control-label">编号:</label>
<div class="col-md-2 column">
<!--编号 -->
<input type="hidden" id="Staff_ID" class="form-control" name="Staff_ID" placeholder="请输入">
<input type="text" id="Staff_No" class="form-control" readonly name="Staff_No" placeholder="">
</div> <label class="col-sm-1 control-label">工号:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Code" onblur="setStaffId()" class="form-control" name="Staff_Code" placeholder="请输入工号">
</div> <label class="col-sm-1 control-label">姓名:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Name" class="form-control" name="Staff_Name" placeholder="请输入姓名" >
<span class="required" id="sp1">*</span>
</div> </div>
</div> <div class="row clearfix">
<div class="form-group">
<label class="col-sm-1 control-label">用户名:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_LoginName" class="form-control" name="Staff_LoginName" placeholder="请输入用户名">
<span class="required" id="sp3">*</span>
</div>
<label class="col-sm-1 control-label">密码:</label>
<div class="col-md-2 column">
<input type="password" id="Staff_Pass" class="form-control" name="Staff_Pass" placeholder="请输入密码">
</div>
<label class="col-sm-1 control-label">职称:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Title" class="form-control" name="Staff_Title" placeholder="请输入职称">
<span class="required" id="sp2">*</span>
</div>
</div>
</div> <div class="row clearfix">
<div class="form-group">
<label class="col-sm-1 control-label">级别:</label>
<div class="col-md-2 column">
<input type="text" id="Staff_Level" class="form-control" name="Staff_Level" placeholder="请输入级别">
</div>
<label class="col-sm-1 control-label">图片:</label>
<div class="col-md-3 column">
<input type="file" name="goodsImage"/>
</div>
<label class="col-sm-1 control-label">状态:</label>
<div class="col-md-2 column">
<select class="form-control" name="Staff_Enable">
<option value="1">启用</option>
<option value="0">注销</option>
</select>
</div> </div>
</div> <input type="button" id="saveUploadOrUpdate" data-toggle='modal' data-target='#myModal' class="btn btn-primary" value="保存">
</form> </div>
<div class="modal-footer"> <button type="button" class="up btn btn-default" data-dismiss="modal">关闭
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
</div>
<ul class="pager" >
<li>
当前页:<span id="curPage"></span>总页数:<span id="totalPages"></span>总共:<span id="totals"></span>条记录
</li>
<li><a id="first" onclick="changePage(this)">首页</a></li>
<li><a id="prev" onclick="changePage(this)">上一页</a></li>
<li><a id="next" onclick="changePage(this)">下一页</a></li>
<li><a id="last" onclick="changePage(this)">尾页</a></li>
<li><input type="number" id="txtCurPage" min="1" max="10"></input><input type="button" class="btn btn-default" value="go" onclick="gotoPage()"/></li>
</ul>
</body>
</html>
<script>
$(function(){
queryUsers(1);
queryTbGoodsType();
});
/* 查询商品表 */
function queryUsers(page){ var name=$("#goodsNames").val();
// alert(name+":参数:");
$.ajax({
url:"userss/queueUsers",
type:"post",
data:{"staffName":name,"pageNum":page,"pageSize":3},
dataType:"json",
success:function(data){
//alert(data.pages);
$("#tbody").empty(); $.each(data.list,function(key,obj){
// alert(obj.Staff_Pic);
var tr="<tr>";
tr+="<td>"+obj.Staff_ID+"</td>";
tr+="<td>"+obj.Staff_No+"</td>";
tr+="<td>"+obj.Staff_Code+"</td>";
tr+="<td>"+obj.Staff_Name+"</td>";
tr+="<td>"+obj.Staff_LoginName+"</td>";
tr+="<td>"+obj.Staff_Pass+"</td>";
tr+="<td>"+obj.Staff_Title+"</td>";
tr+="<td>"+obj.Staff_Level+"</td>";
tr+="<td><img style=' width:90px; height:60px;' src='"+obj.Staff_Pic+"'/></td>";
if(obj.Staff_Enable=='1'){
tr+="<td>启用</td>";
}else{
tr+="<td>"+obj.Staff_Enable+"</td>";
}
tr+="<td><input type='button' id="+obj.Staff_ID+" data-toggle='modal' data-target='#myModal' title="+obj.Staff_ID+" class='findById btn btn-default' value='修改'></td>";
tr+="<td><input type='button' id="+obj.Staff_ID+" class='delete btn btn-default' value='删除'></td>";
tr+="</tr>";
$("#tbody").append(tr); //重新初始化分页链接
$("#curPage").html(data.pageNum);//当前页
$("#totalPages").html(data.pages);//总页数
$("#totals").html(data.total);//总条数
$("#first").attr("data",1);//首页
$("#prev").attr("data",data.prePage);//上一页
$("#next").attr("data",data.nextPage);//下一页
$("#last").attr("data",data.pages);//尾页
$("#txtCurPage").val(data.pageNum).attr("max",data.pages);
});
}
});
}
//改变页面
function changePage(obj){
var page=$(obj).attr("data");//取出data属性值
queryUsers(page);
}
//跳转到指定页面
function gotoPage(page){
var page=$("#txtCurPage").val();
queryUsers(page);
}
/*查询商品类型 */
function queryTbGoodsType(){
$.ajax({
url:"goods/queryTbGoodsType",
type:"post",
data:"",
dataType:"json",
success:function(data){
for(var i=0;i<data.length;i++){
var obj=data[i];
$(".sele").append("<option value='"+obj.typeId+"'>"+obj.typeName+"</option>");
}
}
});
}
/* 添加修改之前清空form表单 */
$(document).on("click",".emptys",function(){
$("#Staff_ID").val("");
$("#Staff_No").val("");
$("#Staff_Code").val("");
$("#Staff_Name").val("");
$("#Staff_LoginName").val("");
$("#Staff_Pass").val("");
$("#Staff_Title").val("");
$("#Staff_Level").val("");
$("#Staff_Pic").val("");
$("#Staff_Enable").val("");
});
/*添加修改 */
/*$(document).on("click","#saveUploadOrUpdate",function(){
//alert($("#form1").serialize());
$.ajax({
url:"users/saveUploadOrUpdate",
type:"post",
data:$("#form1").serialize(),
dataType:"text",
success:function(data){
alert(data);
queryUsers();
}
});
});*/ /* 上传文本图片和修改 */
$(document).on("click","#saveUploadOrUpdate",function(){
$("#form1").ajaxSubmit({
url:"userss/saveUploadOrUpdate",
type:"post",
contentType:"application/x-www-form-urlencoded; charset=utf-8",
dataType:"text",
success:function(data){
alert(data);
queryUsers($("#curPage").html());//刷新当前页面
//changePage(last);//添加刷新指向尾页 }
});
});
/*修改前查询 */
$(document).on("click",".findById",function(){
var id=this.id;
$.ajax({
url:"userss/queueById",
type:"post",
data:{"staffId":id},
dataType:"json",
success:function(data){
$("#Staff_ID").val(data.Staff_ID);
$("#Staff_No").val(data.Staff_No);
$("#Staff_Code").val(data.Staff_Code);
$("#Staff_Name").val(data.Staff_Name);
$("#Staff_LoginName").val(data.Staff_LoginName);
$("#Staff_Pass").val(data.Staff_Pass);
$("#Staff_Title").val(data.Staff_Title);
$("#Staff_Level").val(data.Staff_Level);
$("#Staff_Pic").val(data.Staff_Pic);
$("#Staff_Enable").val(data.Staff_Enable);
}
});
});
$(document).on("click",".delete",function(){
var id=this.id;
if (confirm("您确定要删除此信息吗?")){
$.ajax({
url:"userss/deleteGoods",
type:"post",
data:{"goodsId":id},
dataType:"text",
success:function(data){
alert(data);
queryUsers($("#curPage").html());//刷新当前页面
}
});
}else{
return false;
}
}); /*失去焦点*/
function setStaffId(){
var Id=$("#Staff_Code").val();
$("#Staff_No").val(Id); } </script>

ajaxSubmit 实现图片上传 SSM maven的更多相关文章

  1. input[type=file]中使用ajaxSubmit来图片上传

    今天在使用input[type=file]上传图片到服务器时,因为项目要求,并不是像常见的通过按钮来提交表单事件,而是图片上传后就自动执行表单提交事件,将上传的图片信息传给服务器. 刚开始我是这样执行 ...

  2. ssm框架实现图片上传显示并保存地址到数据库

    本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...

  3. Ueditor1.4.3.3+springMvc+maven 实现图片上传

    前记:由于项目中需要有一个新增数据并且要能支持表格图片上传的功能.使用了ueditor控件.为实现这个功能,从一开始什么都看不懂,到一直连着弄了5天,总算是有了眉目.在此记录一下以便能帮到可以和我一样 ...

  4. 图片上传,支持同步/异步、预览(MVC、uploadify异步提交、js预览、ajaxSubmit异步提交)兼容大部分浏览器,含代码

    图片上传代码,支持同步/异步和图片的预览 主要用了两种方式,可兼容大部分浏览器. 第一种使用uploadify异步上传,上传后返回图片路径显示到页面. 每二种使用ajaxSubmit异步上传,为兼容I ...

  5. ssm实现图片上传

    在使用ssm完成前后端对接时,总免不了前台传过来的文件问题,而html中的<input>框直接使用时,往往会获取不到路径,今天在完成图片上传后的来做个总结 首先,前台页面 <!DOC ...

  6. ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小

    之前整理过SSM的文件上传,这次直接用代码了. 前台页面和js //form表单 <form id= "uploadForm" enctype="multipart ...

  7. SSM实现图片上传管理操作

    Spring MVC 实现文件上传 时序图 利用 Spring MVC 实现文件上传功能,离不开对 MultipartResolver 的设置.MultipartResolver 这个类,你可以将其视 ...

  8. 在SSM框架中如何将图片上传到数据库中

    今天我们来看看SSM中如何将图片转换成二进制,最后传入到自己的数据库中,好了,废话不多说,我们开始今天的学习,我这里用的编辑器是IDEA 1.导入图片上传需要的jar依赖包 1 <depende ...

  9. (SSM框架)实现小程序图片上传(配小程序源码)

    阅读本文约"2分钟" 又是一个开源小组件啦! 因为刚好做到这个小功能,所以就整理了一下,针对微信小程序的图片(文件)上传! 原业务是针对用户反馈的图片上传.(没错,本次还提供小程序 ...

随机推荐

  1. How to call javascript function on page load in asp.net

    How to call javascript function on page load in asp.net 解答1,使用RegisterStartupScript来运行 需要注意的是,下面的dem ...

  2. [转]玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

    文章转载自CoderZh的技术博客 地址:https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Goog ...

  3. Linux内核调试方法总结之coredump

    什么是core dump? 分析core dump是Linux应用程序调试的一种有效方式,像内核调试抓取ram dump一样,core dump主要是获取应用程序崩溃时的现场信息,如程序运行时的内存. ...

  4. Linux内核调试方法总结之栈帧

    栈帧 栈帧和指针可以说是C语言的精髓.栈帧是一种特殊的数据结构,在C语言函数调用时,栈帧用来保存当前函数的父一级函数的栈底指针,当前函数的局部变量以及被调用函数返回后下一条汇编指令的地址.如下图所示: ...

  5. 用Vue来实现音乐播放器(八):自动轮播图啊

    slider.vue组件的模板部分 <template> <div class="slider" ref="slider"> <d ...

  6. 手动配置 ESXi 主机挂载 NFS 的最大值

    目录 目录 资料 手动配置 ESXi 主机挂载 NFS 的最大值 资料 官方 KB 地址 手动配置 ESXi 主机挂载 NFS 的最大值 Open: 清单 ==> ESXi 主机 ==> ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第3节 接口_1_接口概述与生活举例

  8. KETTLE——(一)资源库

    对KETTLE有了大概的了解,pdi-ce-6.0.1.0-386也下载完成了. 1.解压pdi-ce-6.0.1.0-386.zip文件,双击运行Spoon.bat(KETTLE是Java开发的,运 ...

  9. vue组件父子间通信之综合练习--假的聊天室

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. linux系统镜像iso文件下载

    linux系统镜像iso文件下载 首先你要选择你想要的linux版本,常见版本有CentOS,Ubuntu.选择一个你需要的. 有两个镜像站推荐: 网易镜像站:http://mirrors.163.c ...