文件/图片上传功能,简单总结如下

1.引入ajaxfileupload.js

注意:该文件需要在引入Jquery之后引入

下载链接:https://i.cnblogs.com/Files.aspx

2.colModel中文件上传name设置

 {name:'cover',index:'cover',edittype:"file",editable:true,editoptions: {enctype: "multipart/form-data"},
formatter:function (value,option,rows) {
return "<img style='width:30%;height:10s%;' src='${pageContext.request.contextPath}/image/"+rows.cover+"'/>";
}},

3.前台编码

 <%@page pageEncoding="UTF-8" contentType="text/html; utf-8" isELIgnored="false" %>
<html>
<link rel="stylesheet" href="statics/boot/css/bootstrap.css" type="text/css">
<link rel="stylesheet" href="statics/jqgrid/css/trirand/ui.jqgrid-bootstrap.css" type="text/css">
<script src="statics/boot/js/jquery-2.2.1.min.js" type="text/javascript"></script>
<script src="statics/boot/js/bootstrap.min.js" type="text/javascript"></script>
<script src="statics/jqgrid/js/trirand/i18n/grid.locale-cn.js" type="text/javascript"></script>
<script src="statics/jqgrid/js/trirand/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="statics/jqgrid/js/ajaxfileupload.js" type="text/javascript"></script> <script>
$(function () {
$('#tt').jqGrid({
url:'${pageContext.request.contextPath}banner/showBanners',
datatype:'json',
styleUI:'Bootstrap',
//cellEdit:true,
multiselect:true,
colNames:['编号', '名称', '图片', '描述', '状态','创建时间'],
collEdit:true,
colModel:[
{name:"id",align:'center',hidden:true},
{name:'title',align:'center',editable:true},
{name:'cover',index:'cover',edittype:"file",editable:true,editoptions: {enctype: "multipart/form-data"},
formatter:function (value,option,rows) {
return "<img style='width:30%;height:10s%;' " +
"src='${pageContext.request.contextPath}/image/"+rows.cover+"'/>";}},
{name:'description',align:'center',editable:true},
{name:'status',align:'center',editable:true,edittype:"select",
editoptions:{value:"正常:正常;冻结:冻结"}},
{name:'create_date',align:'center',formatter:"date",formatoptions:{scrformat:'Y-m-d H:i:s',newformat:'Y-m-d'}}
//格式化参考:http://www.cnblogs.com/hxling/archive/2010/10/10/1847334.html
],
pager:'#pager',
autowidth:true,
height:'60%',
rowNum : 3,
rowList : [2,3,4,5],
caption : "轮播图的详细信息",
editurl:'${pageContext.request.contextPath}/banner/oper',//设置编辑表单提交路径
viewrecords : true,
//recreateForm: true确保每添加或编辑表单是重新创建。
}).navGrid('#pager',{edit : true,add : true,del : true,search:false}, {
jqModal:true,closeAfterAdd: true,recreateForm:true,onInitializeForm : function(formid){
$(formid).attr('method','POST');
$(formid).attr('action','');
$(formid).attr('enctype','multipart/form-data');
},
afterSubmit:function (response) {
var status = response.responseJSON.status;
var id = response.responseJSON.message;
alert("确认修改")
if(status){
$.ajaxFileUpload({
url:"${pageContext.request.contextPath}/banner/upload",
fileElementId:"cover",
data:{id:id},
type:"post",
success:function () {
$("#tt").trigger("reloadGrid")
}
});
}
}
}, {
jqModal:true,closeAfterEdit: true,recreateForm:true,onInitializeForm : function(formid){
$(formid).attr('method','POST');
$(formid).attr('action','');
$(formid).attr('enctype','multipart/form-data');
},
afterSubmit:function (response) {
var status = response.responseJSON.status;
var id = response.responseJSON.message;
alert("确认添加")
if(status){
$.ajaxFileUpload({
url:"${pageContext.request.contextPath}/banner/upload",
fileElementId:"cover",
data:{id:id},
type:"post",
success:function () {
$("#tt").trigger("reloadGrid")
}
});
}
}
}
);
})
</script>
<body>
<table id="tt"></table>
<div id="pager" style="height: 30px"></div>
</body>
</html>

前台代码

4.后台编码

 public void upload(String id, MultipartFile cover) throws IOException {
//需要在submit之后进行一次图片路径的修改
Banner banner = new Banner();
log.info("上传图片的原始名字"+cover.getOriginalFilename());
String realPath =httpSession.getServletContext().getRealPath("image");
cover.transferTo(new File(realPath,cover.getOriginalFilename()));
banner.setId(id);
banner.setCover(cover.getOriginalFilename());
bannerDAO.updateByPrimaryKeySelective(banner);
}

后台代码

JQGrid之文件上传的更多相关文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox

    系列目录 https://yunpan.cn/cZVeSJ33XSHKZ  访问密码 0fc2 今天整合lightbox插件Fancybox1.3.4,发现1.3.4版本太老了.而目前easyui 1 ...

  2. 基于jQuery Ajax实现无刷新文件上传

    最近因项目需求更改,需要实现选择文件后即时上传至服务器,然后提交后,加载xls表格内容到jqgrid表格中,文件上传功能实现示例: 前端jsp页面: <form id="uploadF ...

  3. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  4. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  5. Java FtpClient 实现文件上传服务

    一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...

  6. 小兔Java教程 - 三分钟学会Java文件上传

    今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...

  7. ,net core mvc 文件上传

    工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...

  8. Web开发安全之文件上传安全

    很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...

  9. AutoIt实现Webdriver自动化测试文件上传

    在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...

随机推荐

  1. 如何取得Spring管理的bean

    本文主要讲3中实现方式,请用第3种方法(通用) 1.servlet方式加载时配置如下 <servlet> <servlet-name>springMVC</servlet ...

  2. Kafka Eagle V1.3.4更新预览

    1.概述 Kafka Eagle是一款开源的Kafka集群监控系统,源代码托管在Github.目前Kafka Eagle已更新到V1.3.4版本,域名已经统一更新为http://www.kafka-e ...

  3. Python之爬虫有感(一)

    urllib.request.Request('URL',headers = headers)User-Agent 是爬虫和反爬虫斗争的第一步,发送请求必须带User—Agent使用流程:    1. ...

  4. 洛谷 P1039 侦探推理

    题目:https://www.luogu.org/problemnew/show/P1039 分析: 这道题是一道有技术含量的模拟,我们主要是不要让计算机向人一样思考,只需要让他穷举变化的星期几和当罪 ...

  5. NameNode和SecondaryNameNode的工作机制

    NameNode&Secondary NameNode 工作机制 NameNode: 1.启动时,加载编辑日志和镜像文件到内存 2.当客户端对元数据进行增删改,请求NameNode 3.Nam ...

  6. C#3.0新增功能09 LINQ 基础04 基本 LINQ 查询操作

    连载目录    [已更新最新开发文章,点击查看详细] 本篇介绍 LINQ 查询表达式和一些在查询中执行的典型操作. 获取数据源 在 LINQ 查询中,第一步是指定数据源. 和大多数编程语言相同,在使用 ...

  7. HTML 去调table表单里面td之间的间距

    首先为大家展示一下最原始的代码和效果.直接在table中用td划分的表格会默认隐藏边框.  接下来我们用css来增加样式,为table增加边框. table { border: 1px solid # ...

  8. [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解

    [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装.启动及PXE理论详解 本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议 ...

  9. 开源项目托管到GitHub上

    前提是安装了git客户端 1.进入你的GitHub账户 2.点击new repositories   创建一个新的项目 输入项目名和项目描述   3.复制该项目的https路径 4.找一个文件夹来存放 ...

  10. 第二章 :初识MySQL

    一.MySQL 1. MySQL的版本 社区版 企业帮 2.MySQL的优势 1.运行速度快 2.使用成本低 3.容易使用 4.可移植性高 5.适用更多用户 二.默认字符集设置 1.Standard ...