當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC实现简单的图片上传DEMO
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC实现简单的图片上传DEMO
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
先定義好picture的Entity.
前臺頁面:(css,js等沒給出)
<%-- productList.jsp --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <meta name="renderer" content="webkit|ie-comp|ie-stand"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> <!--[if lt IE 9]> <script type="text/javascript" src="js/html5.js"></script> <script type="text/javascript" src="js/respond.min.js"></script> <script type="text/javascript" src="js/PIE_IE678.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/H-ui.css"/> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/H-ui.admin.css"/> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/font/font-awesome.min.css"/> <!--[if IE 7]> <link href="font/font-awesome-ie7.min.css" rel="stylesheet" type="text/css" /> <![endif]--> <title>圖片列表</title> </head> <body> <nav class="Hui-breadcrumb"><i class="icon-home"></i> 首頁 <span class="c-gray en">></span> 圖片庫 <span class="c-gray en">></span> 圖片列表 <a class="btn btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="icon-refresh"></i></a></nav> <div class="pd-20"><div class="text-c"> 日期范圍:<input type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'logmax\')||\'%y-%M-%d\'}'})" id="logmin" class="input-text Wdate" style="width:120px;">-<input type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'logmin\')}',maxDate:'%y-%M-%d'})" id="logmax" class="input-text Wdate" style="width:120px;"><input type="text" name="" id="" placeholder=" 圖片名稱" style="width:250px" class="input-text"><button name="" id="" class="btn btn-success" type="submit"><i class="icon-search"></i> 搜圖片</button></div><div class="cl pd-5 bg-1 bk-gray mt-20"> <span class="l"><a href="javascript:;" onClick="datadel()" class="btn btn-danger radius"><i class="icon-trash"></i> 批量刪除</a> <a class="btn btn-primary radius" href="addPicture.html"><i class="icon-plus"></i> 添加圖片</a></span> <span class="r">共有數據:<strong>54</strong> 條</span> </div><table class="table table-border table-bordered table-bg table-hover table-sort"><thead><tr class="text-c"><th width="40"><input name="" type="checkbox" value=""></th><th width="80">ID</th><th width="100">分類</th><th width="150">封面</th><th>圖片名稱</th><th width="150">Tags</th><th width="150">更新時間</th><th width="60">發布狀態</th><th width="70">操作</th></tr></thead><tbody><c:if test="${not empty pictures}"><c:forEach items="${pictures }" var="pic" varStatus="vs"><tr class="text-c"><td><input name="" type="checkbox" value="${vs.index + 1}"></td><td>${vs.index + 1}</td><td>${pic.classify }</td><td><a href="picture-show.html"><img class="picture-thumb" src="${pageContext.request.contextPath }/${pic.picAddr }"></a></td><td class="text-l"><a class="maincolor" href="picture-show.html">${pic.picName }</a></td><td class="text-c">${pic.tags }</td><td>${pic.updateTime }</td><td class="picture-status"><span class="label label-success">已發布</span></td><td class="f-14 picture-manage"><a style="text-decoration:none" onClick="picture_xiajia(this,'10001')" href="javascript:;" title="下架"><i class="icon-hand-down"></i></a> <a style="text-decoration:none" class="ml-5" onClick="picture_edit('10001','','','圖庫編輯','picture-edit.html')" href="javascript:;" title="編輯"><i class="icon-edit"></i></a> <a style="text-decoration:none" class="ml-5" onClick="picture_del(this,'10001')" href="javascript:;" title="刪除"><i class="icon-trash"></i></a></td></tr></c:forEach></c:if><c:if test="${pictures == null}"><tr class="text-c"><td><input name="" type="checkbox" value=""></td><td>001</td><td>分類名稱</td><td><a href="picture-show.html"><img class="picture-thumb" src="${pageContext.request.contextPath }/images/pictures/$5O{[R$CL95BYYRCCY[}ZWD.gif"></a></td><td class="text-l"><a class="maincolor" href="picture-show.html">現代簡約 白色 餐廳</a></td><td class="text-c">標簽</td><td>2014-6-11 11:11:42</td><td class="picture-status"><span class="label label-success">已發布</span></td><td class="f-14 picture-manage"><a style="text-decoration:none" onClick="picture_xiajia(this,'10001')" href="javascript:;" title="下架"><i class="icon-hand-down"></i></a> <a style="text-decoration:none" class="ml-5" onClick="picture_edit('10001','','','圖庫編輯','picture-edit.html')" href="javascript:;" title="編輯"><i class="icon-edit"></i></a> <a style="text-decoration:none" class="ml-5" onClick="picture_del(this,'10001')" href="javascript:;" title="刪除"><i class="icon-trash"></i></a></td></tr></c:if></tbody></table><div id="pageNav" class="pageNav"></div> </div> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/layer/layer.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/pagenav.cn.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/plugin/My97DatePicker/WdatePicker.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/H-ui.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/H-ui.admin.js"></script> <script type="text/javascript"> window.onload = (function(){// optional setpageNav.pre="<上一頁";pageNav.next="下一頁>";// p,當前頁碼,pn,總頁面pageNav.fn = function(p,pn){$("#pageinfo").text("當前頁:"+p+" 總頁: "+pn);};//重寫分頁狀態,跳到第三頁,總頁33頁pageNav.go(1,13); }); $('.table-sort').dataTable({"lengthMenu":false,//顯示數量選擇 "bFilter": false,//過濾功能"bPaginate": false,//翻頁信息"bInfo": false,//數量信息"aaSorting": [[ 1, "desc" ]],//默認第幾個排序"bStateSave": true,//狀態保存"aoColumnDefs": [//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隱藏顯示{"orderable":false,"aTargets":[0,8]}// 制定列不參與排序] }); </script> </body> </html> <%-- addPicture.jsp --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="renderer" content="webkit|ie-comp|ie-stand"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> <!--[if lt IE 9]> <script type="text/javascript" src="js/html5.js"></script> <script type="text/javascript" src="js/respond.min.js"></script> <script type="text/javascript" src="js/PIE_IE678.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/H-ui.css"/> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/H-ui.admin.css"/> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/font/font-awesome.min.css"/> <!--[if IE 7]> <link href="font/font-awesome-ie7.min.css" rel="stylesheet" type="text/css" /> <![endif]--> <title>圖片列表_js代碼</title> </head> <body> <nav class="Hui-breadcrumb"><i class="icon-home"></i> 首頁 <span class="c-gray en">></span> 圖片庫 <span class="c-gray en">></span> 圖片列表 <a class="btn btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="icon-refresh"></i></a></nav> <div class="pd-20"><div class="text-c"> 日期范圍:<input type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'logmax\')||\'%y-%M-%d\'}'})" id="logmin" class="input-text Wdate" style="width:120px;">-<input type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'logmin\')}',maxDate:'%y-%M-%d'})" id="logmax" class="input-text Wdate" style="width:120px;"><input type="text" name="" id="" placeholder=" 圖片名稱" style="width:250px" class="input-text"><button name="" id="" class="btn btn-success" type="submit"><i class="icon-search"></i> 搜圖片</button></div><div class="cl pd-5 bg-1 bk-gray mt-20"> <span class="l"><a href="javascript:;" onClick="datadel()" class="btn btn-danger radius"><i class="icon-trash"></i> 批量刪除</a> <a class="btn btn-primary radius" onClick="picture_add('','','添加圖片','picture-add.html')" href="javascript:;"><i class="icon-plus"></i> 添加圖片</a></span> <span class="r">共有數據:<strong>54</strong> 條</span> </div><form action="insertPic.html" method="post" enctype="multipart/form-data"><table class="table table-border table-bordered table-bg table-hover table-sort"><thead><tr class="text-c"><th width="100">分類</th><th width="150">封面</th><th>圖片名稱</th><th width="150">Tags</th><th width="150">更新時間</th><th width="70">操作</th></tr></thead><tbody><tr class="text-c"><td><input name="classify" type="text"></td><!-- <td><a href="picture-show.html"><img class="picture-thumb" src="pic/200x150.jpg"></a></td> --><td><input type="file" name="uploadPic" /></td><td class="text-l"><input type="text" name="picName" /></td><td class="text-c"><input type="text" name="tags" /></td><td><input type="text" name="updateTime" /></td><td class="f-14 picture-manage"><input type="submit" value="確定添加"/></tr></tbody></table></form><div id="pageNav" class="pageNav"></div> </div> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/layer/layer.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/pagenav.cn.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/plugin/My97DatePicker/WdatePicker.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/H-ui.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/js/H-ui.admin.js"></script> </body> </html>后臺代碼:
//ManagerController.java @Controller @RequestMapping("/manage") public class ManageController {@Resourceprivate PictureService pictureService;@RequestMapping("/pictureList")public ModelAndView pictureList() {List<Picture> pictures = pictureService.listAll();ModelAndView mv = new ModelAndView();mv.addObject("pictures", pictures);mv.setViewName("manage/pictureList");return mv;}@RequestMapping("/addPicture")public ModelAndView addPicture() {ModelAndView mv = new ModelAndView();mv.setViewName("manage/addPicture");return mv;}@RequestMapping("/insertPic")public ModelAndView insertPic(Picture picture, MultipartFile uploadPic,HttpSession session) throws IllegalStateException, IOException {ModelAndView mv = new ModelAndView();String picPath = session.getServletContext().getRealPath("/") + "images/pictures/";String oldFileName = uploadPic.getOriginalFilename();String suffix = oldFileName.substring(oldFileName.lastIndexOf("."));SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");Date date = new Date();File newFile = new File(picPath + sdf.format(date) + suffix);picture.setPicAddr("images/pictures/" + sdf.format(date) + suffix);uploadPic.transferTo(newFile);System.out.println("最新插入的圖片ID是:" + pictureService.insertPic(picture));mv.setViewName("redirect:pictureList.html");return mv;} }實現效果:
首先進行pictureList.jsp,點擊添加圖片:
會進入addPicture.jsp頁面,然后選擇圖片,確定添加
跳轉回到圖片顯示頁面:
遇到的一些問題:
添加的時候一開始亂碼,修改了一下配置文件就好了,在url后面添加
?useUnicode=true&characterEncoding=utf8.
轉載于:https://my.oschina.net/kkdo/blog/745186
總結
以上是生活随笔為你收集整理的SpringMVC实现简单的图片上传DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么单例模式需要double chec
- 下一篇: POJ 1821 单调队列+dp