jsp文档上传案例

1 文档信息输入

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>上传文档</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet"
	href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">

<script type="text/javascript">
	var xmlhttprequest = null;
	function noRepeatedDocument() {
		if (window.ActiveXObject) {//IE浏览器  
			xmlhttprequest = new ActiveXObject("Microsoft.XMLHTTP");
		} else if (window.XMLHttpRequest) {
			xmlhttprequest = new XMLHttpRequest();
		}
		if (null != xmlhttprequest) {
			var text1 = document.getElementById("documentName").value;
			xmlhttprequest.open("POST", "uploadDocumentValidate?documentName=" + text1, true);
			xmlhttprequest.onreadystatechange = ajaxcallback;
			xmlhttprequest.send(null);
		}
	}
	function ajaxcallback() {
		if (xmlhttprequest.readyState == 4) {
			if (xmlhttprequest.status == 200) {
				var text = xmlhttprequest.responseText;
				document.getElementById("hintNameInfo").innerHTML = text;
			}
		}
	}
	function checkForm(form) {
		if (form.documentName == "") {
			alert("文档标题不能为空!");
			return false;
		} else if (form.publishNumber.value == "") {
			alert("发文字号不能为空!");
			return false;
		} else if(form.chooseFile.value==""){
			alert("请选择文档!");
			return false;
		}else{
			return true;
		}
		return true;
	}
</script>
</head>

<body>
<form name="formUpload" action="saveDocument" method = "post" enctype = "multipart/form-data" οnsubmit="return checkForm(this)">
    文档标题:<input type="text" id="documentName" name="documentName" οnblur="noRepeatedDocument()">
    <div id="hintNameInfo"></div>
    文档的关键字:<input type="text" name="keyWords"><br>
    描述信息:<input type="text" name="description"><br>
    发布部门:<input type="text" name="publishDepartment"><br> 
    发文字号:<input type="text" id="publishNumber" name="publishNumber"><br>
    批准部门:<input type="text" name="authorizeDepartment"><br>
    所属地区:<input type="text" name="district"><br>
    适用范围:<input type="text" name="applyScope"><br>
    批准日期:<input id="authorizeDate" /><br>
    发布日期:<input id="publishDate" type="text" name="publishDate"/><br>
    实施日期:<input id="applyDate" /><br>
    失效日期:<input id="deadDate" /><br>
    时效性:<select name="timeliness">
    	<option>现行有效</option>
    	<option>失效</option>
    	<option>已被修订</option>
    	<option>尚未生效</option>
    	<option>部分生效</option>
    </select><br>
    时效层级:<select name="effectHierarchy">
    	<option>宪法</option>
    	<option>法律</option>
    	<option>行政法规</option>
    	<option>地方性法规</option>
    	<option>部门规章</option>
    	<option>地方性规章</option>
    	<option>行政规范性文件</option>
    </select><br>
    一级类别:<select name="firstCategory" >
    	<option>房地产</option>
    </select>
    二级类别:<select name="secondCategory" onChange="redirect(this.options.selectedIndex)">
    	<option>土地市场</option>
    	<option>勘查设计与报建</option>
    	<option>建设施工</option>
    	<option>商品房销售</option>
    	<option>产权登记</option>
    	<option>物业管理</option>
    	<option>房地产税费</option>
    	<option>房屋征收</option>
    	<option>土地征收</option>
    	<option>集体建设用地(含宅基地)管理</option>
    	<option>土地储备</option>
    	<option>土地规划与耕地保护</option>
    	<option>土地监管</option>
    	<option>住房保障</option>
    	<option>直管房管理与发还</option>
    	<option>房屋交易(买卖、租赁、典当)</option>
    	<option>危破房修缮</option>
    	<option>主体管理</option>
    	<option>信息公开</option>
    	<option>行政执法与其它</option>
    	<option>房地产测绘</option>
    </select>
    三级类别:<select id="thirdCategory" name="thirdCategory">
    </select><br>
    相关文档:<input type="text" id="referencedDocument" name="referencedDocument"><br>
    广州统一编号:<input type="text" name="unifiedNumber"><br>
    请选择要上传的文档:<input type ="file" id="chooseFile" name = "chooseFile" /><br>
    <input type="submit" value="提交"><input type="reset" value="重置">
</form>

<script>
		function myfunc(){
			alert("change received!");
		}
		var groups = document.formUpload.secondCategory.length;
		var group = new Array(groups);
		for (i = 0; i < groups; i++){
			group[i] = new Array();
	 	}
 		
		group[0][0] = new Option("土地出让、出租、授权经营","");
		group[0][1]=new Option("土地划拨","");
		group[0][2]=new Option("土地转让与抵押","");
		group[0][3]=new Option("前置审批土地处置","");
		group[0][4]=new Option("烂尾地、烂尾楼","");
		group[0][5]=new Option("历史用地确权","");
		group[0][6]=new Option("涉诉土地处置","");
		group[0][7]=new Option("集体建设用地流转","");
		group[0][8]=new Option("近海岛屿","");
		group[0][9]=new Option("合作开发","");
		group[0][10]=new Option("一级开发","");
		group[0][11]=new Option("三旧改造","");
		group[0][12]=new Option("调整规划","");

		group[1][0]=new Option("勘查");
		group[1][1]=new Option("设计");
		group[1][2]=new Option("报批");
		
		group[2][0]=new Option("施工(施工许可、工程发承包、施工合同)");
		group[2][1]=new Option("质量");
		group[2][2]=new Option("建筑节能环保");
		group[2][3]=new Option("安全");
		group[2][4]=new Option("竣工(竣工验收、规划验收、消防验收、水电验收、质量验收)");
		group[2][5]=new Option("监理");
		group[2][6]=new Option("作业标准与规范");
		group[2][7]=new Option("文物保护");
		
		group[3][0]=new Option("预售许可");
		group[3][1]=new Option("合同交易");
		group[3][2]=new Option("交易监管");
		group[3][3]=new Option("车位销售");
		
		group[4][0]=new Option("登记管理");
		group[4][1]=new Option("抵押登记");
		group[4][2]=new Option("初始登记");
		group[4][3]=new Option("转移登记");
		group[4][4]=new Option("预告登记");
		group[4][5]=new Option("变更登记");
		group[4][6]=new Option("注销登记");
		group[4][7]=new Option("土地权属争议");
		
		group[6][0] = new Option("税费管理");
		group[6][1]=new Option("土地增值税");
		group[6][2]=new Option("营业税");
		group[6][3]=new Option("契税");
		group[6][4]=new Option("印花税");
		group[6][5]=new Option("所得税");
		group[6][6]=new Option("房产税");
		group[6][7]=new Option("耕地占用税");
		group[6][8]=new Option("新菜地开发建设基金");
		group[6][9]=new Option("林地植被恢复税");
		group[6][10]=new Option("新增建设用地土地有偿使用费");
		group[6][11]=new Option("耕地开垦费");
		group[6][12]=new Option("易地开发补充耕地基金");
		group[6][13]=new Option("征地管理费");
		
		group[7][0]=new Option("房屋征收政策法规");
		group[7][1]=new Option("城市房屋拆迁政策法规(失效)");
		
		group[12][0]=new Option("供后监管");
		group[12][1]=new Option("土地执法监管");
		group[12][2]=new Option("闲置土地查处");
		
		group[13][0]=new Option("住房制度改革");
		group[13][1]=new Option("住房公积金");
		group[13][2]=new Option("住房保障制度");
		var temp = document.formUpload.thirdCategory;
		function redirect(x) {
			for(m=temp.options.length-1;m>=0;m--){
				temp.options[m]=new Option("");
			}
			for(i=0;i<group[x].length;i++){
				temp.options[i]=new Option(group[x][i].text);
			}
		}
		$(document).ready(function (){
			for(index=0;index<13;index++){
				document.getElementById("thirdCategory").options[index]=new Option(group[0][index].text);
			}
		});
</script>
</body>
</html>

值得一提的是前面的js实现了重复检测和信息合法检测,后边的js实现了一个列表的列表项根据另一个列表的选择变化而变化的功能。重复检测js请求uploadDocumentValidate,可参考上一篇文章的实现。


2 保存后台


	@RequestMapping("/saveDocument")
	public String getSaveDocumentResult(HttpServletRequest request){
		
		/*
		 * part1,从documentStorePath.properties配置文件读取文件存储路径
		 */
		String documentStorePath = "";
		Properties pro = new Properties();
		String realpath = request.getRealPath("/WEB-INF/classes");
		try {
			//读取配置文件
			FileInputStream in = new FileInputStream(realpath
					+ "/documentStorePath.properties");
			pro.load(in);
		} catch (FileNotFoundException e) {
			System.out.println(e);
		} catch (IOException e) {
			System.out.println(e);
		}
		//通过key获取配置文件
		documentStorePath = pro.getProperty("documentStorePath");
		
		/*
		 * part2,获取request请求参数,把普通参数放入map,把上传的文件写入到设定的路径
		 */
		String storePath="";//这个用来保存上传文件保存的路径
	    Map<String,String> documentAttributes=new HashMap<String,String>();
		boolean isFileUpload = ServletFileUpload
				.isMultipartContent(request);
		if (isFileUpload) {
			try {
				FileItemFactory factory = new DiskFileItemFactory();
				ServletFileUpload fileUpload = new ServletFileUpload(
						factory);
				fileUpload.setHeaderEncoding("UTF-8");
				List<FileItem> fileItemList = fileUpload
						.parseRequest(request);
				for (FileItem item : fileItemList) {
					if (!item.isFormField()) {
						String value = item.getName();
						String fileName = value.substring(value
								.lastIndexOf("\\") + 1);
						File file = new File(documentStorePath);
						//out.write("<br>documentStorePath:" + documentStorePath + ":" + fileName+ "<br>");
						if (!file.isDirectory()) {
							file.mkdirs();
						}
						File newFile = new File(documentStorePath + "/" + fileName);
						storePath=documentStorePath + "/" + fileName;
						item.write(newFile);
					} else {
						documentAttributes.put(new String(item.getFieldName().getBytes(
								"ISO-8859-1"), "utf-8"),new String(item.getString().getBytes(
										"ISO-8859-1"), "utf-8"));
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
		/*
		 * part3,将文件信息保存到数据库
		 */
		//将文件信息录入数据库
		Document document=new Document();
		String account=(String) request.getSession().getAttribute("userName");
		System.out.println("************************account:"+account);
		document.setAccount(account);
		String documentName=documentAttributes.get("documentName");
		System.out.println("*********************documentName:"+documentName);
		document.setDocumentName(documentName);
		String keyWords=documentAttributes.get("keyWords");
		System.out.println("**********************keyWords:"+keyWords);
		document.setKeyWords(keyWords);
		String description=documentAttributes.get("description");
		System.out.println("*********************description:"+description);
		document.setDescription(description);
		String publishDepartment=documentAttributes.get("publishDepartment");
		System.out.println("*********************publishDepartment:"+publishDepartment);
		document.setPublishDepartment(publishDepartment);
		String publishNumber=documentAttributes.get("publishNumber");
		System.out.println("*********************publishNumber:"+publishNumber);
		document.setPublishNumber(publishNumber);
		String authorizeDepartment=documentAttributes.get("authorizeDepartment");
		System.out.println("********************authorizeDepartment:"+authorizeDepartment);
		document.setAuthorizeDepartment(authorizeDepartment);
		String district=documentAttributes.get("district");
		System.out.println("*********************district:"+district);
		document.setDistrict(district);
		String applyScope=documentAttributes.get("applyScope");
		System.out.println("**********************applyScope:"+applyScope);
		document.setApplyScope(applyScope);
		//获取日期并转换
		GetCSTDate getCstDate=new GetCSTDate();
		String authorizeDate=documentAttributes.get("authorizeDate");
		System.out.println("**********************authorizeDate:"+authorizeDate);
		String publishDate=documentAttributes.get("publishDate");
		System.out.println("**********************publishDate:"+publishDate);
		String applyDate=documentAttributes.get("applyDate");
		System.out.println("*********************applyDate:"+applyDate);		
		String deadDate=documentAttributes.get("deadDate");
		System.out.println("*******************deadDate:"+deadDate);
		Date dauthorizeDate=getCstDate.tranToDate(authorizeDate);
		document.setAuthorizeDate(dauthorizeDate);
		Date dpublishDate=getCstDate.tranToDate(publishDate);
		document.setPublishDate(dpublishDate);
		Date dapplyDate=getCstDate.tranToDate(applyDate);
		document.setApplyDate(dapplyDate);
		Date ddeadDate=getCstDate.tranToDate(deadDate);
		document.setDeadDate(ddeadDate);
		String timeliness=documentAttributes.get("timeliness");
		System.out.println("*********************timeliness"+timeliness);
		document.setTimeliness(timeliness);
		String effectHierarchy=documentAttributes.get("effectHierarchy");
		System.out.println("*********************effectHierarchy:"+effectHierarchy);
		document.setEffectHierarchy(effectHierarchy);
		String firstCategory=documentAttributes.get("firstCategory");
		System.out.println("************************firstCategory:"+firstCategory);
		document.setFirstCategory(firstCategory);
		String secondCategory=documentAttributes.get("secondCategory");
		System.out.println("**************************secondCategory:"+secondCategory);
		document.setSecondCategory(secondCategory);
		String thirdCategory=documentAttributes.get("thirdCategory");
		System.out.println("***********************:"+thirdCategory);
		document.setThirdCategory(thirdCategory);
		String referencedDocument=documentAttributes.get("referencedDocument");
		System.out.println("**********************:"+referencedDocument);
		String unifiedNumber=documentAttributes.get("unifiedNumber");
		System.out.println("***********************:unifiedNumber"+unifiedNumber);
		document.setUnifiedNumber(unifiedNumber);
		document.setStorePath(storePath);
		document.setModifiedDate(new Date());
		this.documentService.saveDocument(document);

		return "internal/editor/saveDocumentResult";
	}

其中用到了配置文件,配置保存文件到何地

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值