springMVC单个文件上传

		<form id="uploadForm" action="upload.html" method="post" enctype="multipart/form-data">
			<table>
				<tr>
					<td>文件</td>
					<td><input type="file" name="file"></td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<button type="button" οnclick="doUpload()">上传</button>
						<button type="button" οnclick="hide('upload')">返回</button>
					</td>
				</tr>
			</table>
		</form>


	function doUpload(){
		if(uploadFormValidateor.form()){
			var fileName = $("#uploadForm").find("input[type=file]")[0].value;
			$.ajax({
				url:"<%=request.getContextPath()%>/ajax/exists.html",
				data:{
					where:"ME_FILE where lower(FILE_NAME) = lower('" + fileName + "')"
				},
				success:function(num){
					var cover;
	                if(num != "0") {
	                	if(confirm("已经存在该文件,是否覆盖原文件?")){
	                		cover = "true";
	                	}else{
	                		return false;
	                	}
	                }
			    	$("#uploadForm").ajaxSubmit({
			    		data:{"cover":cover},
			            success:function(data){
			                if(data == "success") {
			                	$("#searchForm").submit();
			                }else{
			                	alert("上传失败");
			                }
			            }
			         });
	            }
			});
		}
	}

	@RequestMapping("upload")
	@ResponseBody
	public String upload(HttpServletRequest request){
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
        CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");  
		String realFileName = file.getOriginalFilename();  
		String destDir = request.getServletContext().getRealPath("/") + Constant.FILE_PATH;
		File uploadFile;
		try {
			File dir = new File(destDir);
			if(!dir.exists()){
				dir.mkdir();
			}
			uploadFile = new File(destDir + realFileName);
			file.getFileItem().write(uploadFile);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return "failure";
		}
		Map<String,Object> map = new HashMap<String,Object>();
		String cover = request.getParameter("cover");
		int i = 0;
		if(cover != null && cover.equals("true")){	//存在则更新文件信息
			map.put("fileName", realFileName);
			map.put("fileSize", file.getSize());
			map.put("uploadDate", DateUtils.getDate());
			map.put("uploadTime", DateUtils.getTime());
			
			i = MybatisUtils.update("file.mysql.updateFileByName", map);
			if(i == 0){
				return "failure";
			}
		}else{
			map.put("fileId", UUID.randomUUID().toString());
			map.put("fileName", realFileName);
			map.put("fileType", realFileName.substring(realFileName.lastIndexOf(".") + 1));
			map.put("fileSize", file.getSize());
			map.put("uploadDate", DateUtils.getDate());
			map.put("uploadTime", DateUtils.getTime());
			
			i = MybatisUtils.insert("file.mysql.insertFile", map);
			if(i == 0){
				// 操作数据失败,把上传的文件删除
				uploadFile.delete();
				return "failure";
			}
		}
		System.out.println(uploadFile.getAbsolutePath());
		return "success";
	}

根据文件名判断是否已存在文件,提示是否要覆盖,覆盖则更新文件信息;如果文件不存在则向数据插一条上传文件信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值