1、编写的页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <title>XXX</title> <script type="text/javascript" src="<c:url value="/resources/cartoon2/js/jquery-1.7.2.min.js"/>"></script> <script type="text/javascript" src="<c:url value="/resources/js/jquery.js"/>"></script> <script language="javascript" type="text/javascript" src="<c:url value="/resources/js/jquery-2.1.1.js"/>"></script> <script type='text/javascript' src='<c:url value="/resources/js/jquery.validate.min.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/js/jquery.validate.cn.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/jqueryform/2.8/jquery.form.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/js/jquery.validate.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/upload/jQuery-File-Upload/js/vendor/jquery.ui.widget.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/upload/jQuery-File-Upload/js/jquery.iframe-transport.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/upload/jQuery-File-Upload/js/jquery.fileupload.js"/>'></script> <script type='text/javascript'> $(function(){ var basePath = "${pageContext.request.contextPath}"; $('#upload').fileupload({ dataType : 'json', // autoUpload: true, url : "/report/createReport", done : function(e, data) { $.each(data.result,function(index, file) { if (index == 'filedesc') { var _path = file.filepath + '/' + file.filename; $('#posterUrl').val(_path); $('#imgfileName').val(file.filename); } else if(index == "suffixError") { alert(file); } }); }, }); $("#upimgid").click(function() { //alert("test"); $("#upload").trigger('click'); }); $("#reportButton").click(function(){ var flag = true; //获取标题信息 var title = $("#title").val(); //获取描述信息 var description = $("#description").val(); //获取图片路径 var image = $("#posterUrl").val(); //获取名称 var name = $("#name").val(); //获取联系方式 var contact = $("#contact").val(); if(title == "") { $("#title").attr("placeholder","标题不能为空!"); flag = false; } if(image == "") { $("#posterUrl").attr("placeholder","图片不能为空!"); flag = false; } if(description == "") { $("#description").attr("placeholder","描述信息不能为空!"); $("#imgfileName").attr("placeholder","描述信息不能为空!"); flag = false; } if(flag == true) { jQuery.ajax({ type : 'POST', url : basePath + "/report/createReport", data : { "title" : title, "description" : description, "name" : name, "contact" : contact, "image":image }, dataType : 'json', success : function(data) { console.log(data); if(data.result == "success") { $("#title").val(""); $("#posterUrl").val(""); $("#description").val(""); $("#posterUrl").val(""); $("#imgfileName").val(""); $("#name").val(""); $("#contact").val(""); alert("信息提交成功!"); //window.opener=null; window.close(); } else if(data.result == "fail") { alert("对不起,信息提交失败!"); } }, error : function() { alert("网络或者其他原因出错!"); } }); } }); }); </script> <style type="text/css"> body,html *{ margin:0px; padding:0px; } #report-header{ color:#fff; font-weight:900; height:3em; line-height:3em; padding-left:2.8em; background:RGB(0,171,240) url("../resources/report/icon.gif") no-repeat 1.2em 0.9em !important; margin-bottom:1.6em; } #report-form { text-align:center; padding-left:3%; } #report-form table { width:94%; text-align:center; } #report-form table tr td,#report-form table tr td input,#report-form table .field-name,#report-form #star{ height:25px; line-height:25x; vertical-align: middle; } #report-form table .field-name{ text-align:left; font-weight:800; color:#888888; width:24%; vertical-align:top; } #report-form table input,#report-form table textarea { border-width: 1px; border-style:solid;-moz-border-radius:3px; -khtml-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; border-color:#bbbbbb; -moz-border-color:#bbbbbb; color:#888888; outline-style:none; width:98%; font-size:16px; }input {-webkit-appearance:none;} input[type="submit"],input[type="reset"],input[type="button"],input{-webkit-appearance:none;}#report-form table .field-input { text-align:left; } #report-form table .field-name .character{ margin-right:0.3em; } #report-form table #imgfileName { width:87%; float:left; border-bottom-right-radius:0px; border-top-right-radius:0px; } #report-form table #upimgid{ width:10%; float:left; color:#888888; height:27px; border-left:0px; border-bottom-left-radius:0px; border-top-left-radius:0px; } #report-form #star{ color:red; } #report-form #reportButton{ width:100%; text-align:center; color:#fff; height:40px; font-weight:900; vertical-align:middle; background:RGB(0,171,240) !important; } </style> </head> <body> <div id="report-header"> 问题反映 </div> <div id="report-form"> <form action="" method="post" enctype="multipart/form-data"> <table> <tr> <td class="field-name"><label class="character">标题</label><label id="star">*</label></td> <td class="field-input" style="padding-bottom:25px;"> <input type="text" name="title" id="title"/> </td> </tr> <tr> <td class="field-name"><label class="character">描述</label><label id="star">*</label></td> <td class="field-input" style="padding-bottom:25px;"> <textarea rows="4" name="description" id="description"></textarea> </td> </tr> <tr> <td class="field-name"><label class="character">图片</label><label id="star">*</label></td> <td class="field-input" style="padding-bottom:25px;"> <c:url value="/report/upLoadZipNormal" var="fileUploadUrl" /> <input id="upload" type="file" name="file" data-url="${fileUploadUrl}" multiple style="opacity: 0; filter: alpha(opacity :0); display: none;" /> <input id="posterUrl" name="posterUrl" type="hidden"/> <input id="imgfileName" name="imgfileName" type="text" /> <input type="button" id="upimgid" value="+"/> </td> </tr> <tr> <td class="field-name">姓名</td> <td class="field-input" style="padding-bottom:25px;"> <input type="text" name="name" id="name"/> </td> </tr> <tr> <td class="field-name">联系方式</td> <td class="field-input" style="padding-bottom:35px;"> <textarea rows="2" name="contact" id="contact"></textarea> </td> </tr> <tr class="button-tr"> <td colspan="2" id="reportButton" id="reportButton"> 提交 </td> </tr> </table> </form> </div> </body> </html> <title>全国政府网站普查</title> <script type="text/javascript" src="<c:url value="/resources/cartoon2/js/jquery-1.7.2.min.js"/>"></script> <script type="text/javascript" src="<c:url value="/resources/js/jquery.js"/>"></script> <script language="javascript" type="text/javascript" src="<c:url value="/resources/js/jquery-2.1.1.js"/>"></script>
<script type='text/javascript' src='<c:url value="/resources/js/jquery.validate.min.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/js/jquery.validate.cn.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/jqueryform/2.8/jquery.form.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/js/jquery.validate.js"/>'></script>
<script type='text/javascript' src='<c:url value="/resources/upload/jQuery-File-Upload/js/vendor/jquery.ui.widget.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/upload/jQuery-File-Upload/js/jquery.iframe-transport.js"/>'></script> <script type='text/javascript' src='<c:url value="/resources/upload/jQuery-File-Upload/js/jquery.fileupload.js"/>'></script> <script type='text/javascript'> $(function(){ var basePath = "${pageContext.request.contextPath}"; $('#upload').fileupload({ dataType : 'json', // autoUpload: true, url : "/report/createReport",
done : function(e, data) { $.each(data.result,function(index, file) { if (index == 'filedesc') { var _path = file.filepath + '/' + file.filename; $('#posterUrl').val(_path); $('#imgfileName').val(file.filename); } else if(index == "suffixError") { alert(file); } }); }, }); $("#upimgid").click(function() { //alert("test"); $("#upload").trigger('click'); }); $("#reportButton").click(function(){ var flag = true;
//获取标题信息 var title = $("#title").val(); //获取描述信息 var description = $("#description").val(); //获取图片路径 var image = $("#posterUrl").val(); //获取名称 var name = $("#name").val(); //获取联系方式 var contact = $("#contact").val();
if(title == "") { $("#title").attr("placeholder","标题不能为空!"); flag = false; } if(image == "") { $("#posterUrl").attr("placeholder","图片不能为空!"); flag = false; } if(description == "") { $("#description").attr("placeholder","描述信息不能为空!"); $("#imgfileName").attr("placeholder","描述信息不能为空!"); flag = false; }
if(flag == true) { jQuery.ajax({ type : 'POST', url : basePath + "/report/createReport", data : { "title" : title, "description" : description, "name" : name, "contact" : contact, "image":image }, dataType : 'json', success : function(data) { console.log(data); if(data.result == "success") { $("#title").val(""); $("#posterUrl").val(""); $("#description").val(""); $("#posterUrl").val(""); $("#imgfileName").val(""); $("#name").val(""); $("#contact").val(""); alert("信息提交成功!"); //window.opener=null; window.close(); } else if(data.result == "fail") { alert("对不起,信息提交失败!"); } }, error : function() { alert("网络或者其他原因出错!"); } }); } }); });
</script> <style type="text/css"> body,html *{ margin:0px; padding:0px; } #report-header{ color:#fff; font-weight:900; height:3em; line-height:3em; padding-left:2.8em; background:RGB(0,171,240) url("../resources/report/icon.gif") no-repeat 1.2em 0.9em !important; margin-bottom:1.6em; } #report-form { text-align:center; padding-left:3%; } #report-form table { width:94%; text-align:center; } #report-form table tr td,#report-form table tr td input,#report-form table .field-name,#report-form #star{ height:25px; line-height:25x; vertical-align: middle; }
#report-form table .field-name{ text-align:left; font-weight:800; color:#888888; width:24%; vertical-align:top; } #report-form table input,#report-form table textarea { border-width: 1px; border-style:solid; -moz-border-radius:3px; -khtml-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; border-color:#bbbbbb; -moz-border-color:#bbbbbb; color:#888888; outline-style:none; width:98%; font-size:16px; } input {-webkit-appearance:none;} input[type="submit"],input[type="reset"],input[type="button"],input{-webkit-appearance:none;} #report-form table .field-input { text-align:left; } #report-form table .field-name .character{ margin-right:0.3em; } #report-form table #imgfileName { width:87%; float:left; border-bottom-right-radius:0px; border-top-right-radius:0px; } #report-form table #upimgid{ width:10%; float:left; color:#888888; height:27px; border-left:0px; border-bottom-left-radius:0px; border-top-left-radius:0px; } #report-form #star{ color:red; } #report-form #reportButton{ width:100%; text-align:center; color:#fff; height:40px; font-weight:900; vertical-align:middle; background:RGB(0,171,240) !important; } </style> </head> <body> <div id="report-header"> 问题反映 </div> <div id="report-form"> <form action="" method="post" enctype="multipart/form-data"> <table> <tr> <td class="field-name"><label class="character">标题</label><label id="star">*</label></td> <td class="field-input" style="padding-bottom:25px;"> <input type="text" name="title" id="title"/> </td> </tr> <tr> <td class="field-name"><label class="character">描述</label><label id="star">*</label></td> <td class="field-input" style="padding-bottom:25px;"> <textarea rows="4" name="description" id="description"></textarea> </td> </tr> <tr> <td class="field-name"><label class="character">图片</label><label id="star">*</label></td> <td class="field-input" style="padding-bottom:25px;"> <c:url value="/report/upLoadZipNormal" var="fileUploadUrl" /> <input id="upload" type="file" name="file" data-url="${fileUploadUrl}" multiple style="opacity: 0; filter: alpha(opacity :0); display: none;" /> <input id="posterUrl" name="posterUrl" type="hidden"/> <input id="imgfileName" name="imgfileName" type="text" /> <input type="button" id="upimgid" value="+"/> </td> </tr> <tr> <td class="field-name">姓名</td> <td class="field-input" style="padding-bottom:25px;"> <input type="text" name="name" id="name"/> </td> </tr> <tr> <td class="field-name">联系方式</td> <td class="field-input" style="padding-bottom:35px;"> <textarea rows="2" name="contact" id="contact"></textarea> </td> </tr> <tr class="button-tr"> <td colspan="2" id="reportButton" id="reportButton"> 提交 </td> </tr> </table> </form> </div> </body> </html>
2.SpringMVC
package com.report.controller;
import java.io.InputStream; import java.util.HashMap; import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile;
import com.report.common.CommonVar; import com.report.entity.Affix; import com.report.entity.Report; import com.report.service.IReportService; import com.report.utils.FileUtils;
@Controller @RequestMapping(value="/report",method = { RequestMethod.GET, RequestMethod.POST }) public class ReportController { private static final Logger logger = Logger.getLogger(ReportController.class); @Autowired private IReportService reportService; //@Autowired //OperateImage operatorImage; /** * 用于跳转到报表的首页 * @return */ @RequestMapping(value = "/reportIndex") public String reportIndex(){ return "/web/report/report"; } /** * 用于创建报表用 * @return */ @RequestMapping(value = "/createReport" ,method = RequestMethod.POST, produces = "application/json") public Map<String, Object> createReport( Model model,HttpServletRequest request){ Map<String, Object> result = new HashMap<String, Object>(); result.put("result", "fail"); //获取各种参数信息 //获取标题 String title = request.getParameter("title"); //获取描述信息 String description = request.getParameter("description"); //获取图片地址 String image = request.getParameter("image"); //获取姓名 String name = request.getParameter("name"); //获取联系方式 String contact = request.getParameter("contact"); //创建一个举报实体 Report report = new Report( title, description, image, name, contact); //保存举报信息 boolean flag = reportService.createReport(report); if (flag) { result.put("result", "success"); } return result; } /*private void zoomOutImg(String saveURL) throws IOException { int ratio = operatorImage.getImgRatio(saveURL, CommonVar.LOGO_SCALE); operatorImage.reduceImageEqualProportion(saveURL, saveURL, ratio); }*/ /** * 上传到正式路径,压缩不截图 * * @param param * @param imageFile * @return */ @RequestMapping(value = "/upLoadZipNormal", method = RequestMethod.POST, produces = "application/json") public Map<String, Object> upLoadZipNormal( @RequestParam Map<String, String> param, @RequestParam("file") MultipartFile imageFile) { logger.info("-------------------"); Map<String, Object> result = new HashMap<String, Object>(); if (!imageFile.isEmpty()) { Map<String, String> filedesc = new HashMap<String, String>();
try { // 新文件名uuid形成的文件名称 String uuid = FileUtils.genFileName();
// 存放路径 String path = CommonVar.getStoreFilepath() + FileUtils.genFilePath(Affix.UGCFILE); path = path.replace("\\", "/").replace("//", "/"); // 原文件名 String srcName = imageFile.getOriginalFilename(); String suffix = srcName.substring(srcName.lastIndexOf(".") + 1,srcName.length()).toLowerCase(); if (suffix.length() != 0 && (suffix.equals("jpg")) || (suffix.equals("png"))) { // 带后缀的新文件名 String newFileName = uuid + srcName.substring(srcName.indexOf("."));
// 保存文件路径(正式文件夹下) String saveURL = path + "/" + newFileName; // 写文件 InputStream fi = imageFile.getInputStream();
FileUtils.writeFile(fi, saveURL); //等比缩图 //zoomOutImg(saveURL);
String webpath = CommonVar.getWebStoreFilepath() + FileUtils.genFilePath("3"); webpath = webpath.replace("\\", "/");
filedesc.put("id", uuid); filedesc.put("name", uuid); filedesc.put("filetype", Affix.UGCFILE); filedesc.put("contenttype", imageFile.getContentType()); filedesc.put("filename", newFileName);// 有后缀 filedesc.put("originalfilename", imageFile.getOriginalFilename()); filedesc.put("filepath", webpath);
result.put("filedesc", filedesc); } else { result.put("suffixError","文件必须为RGB模式的JPG或PNG格式!"); } //TODO 这里还要计算图片的像素大小。 } catch (Exception e) { e.printStackTrace(); } } return result; } }