springMVC多文件上传

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

	function addFileInput(){
		var $fileInput = $("#multipleUploadForm").find("input[type=file]");
		var len = $fileInput.length;
		var $lastTr = $fileInput.eq(len - 1).parent().parent();
		var $newTr = $lastTr.clone();
		$newTr.find("input[type=file]").attr("name", "file" + len);
		$newTr.insertAfter($lastTr);
	}
	
	function deleteFileInput(){
		var $fileInput = $("#multipleUploadForm").find("input[type=file]");
		var len = $fileInput.length;
		if(len < 2) return;
		var $lastTr = $fileInput.eq(len - 1).parent().parent();
		$lastTr.remove();
	}
	
	function doMultipleUpload(){
		if(multipleUploadFormValidateor.form()){
	    	$("#multipleUploadForm").ajaxSubmit({
	            success:function(data){
	                if(data == "success") {
                                $("#searchForm").submit();
	                }else{
	                	alert("上传失败");
	                }
	            }
	         });
		}
	}


	@RequestMapping("multipleUpload")
	@ResponseBody
	public String multipleUpload(HttpServletRequest request){
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
		String destDir = request.getServletContext().getRealPath("/") + Constant.FILE_PATH;
		try {
			File dir = new File(destDir);
			if(!dir.exists()){
				dir.mkdir();
			}
			String realFileName;
			File destFile;
			for (Entry<String, MultipartFile> entry : fileMap.entrySet()){
				MultipartFile multipartFile = entry.getValue();
				realFileName = multipartFile.getOriginalFilename();
				destFile = new File(destDir + realFileName);
				multipartFile.transferTo(destFile);
				// 上传完插入记录到数据库
				Map<String,Object> map = new HashMap<String,Object>();
				map.put("fileId", UUID.randomUUID().toString());
				map.put("fileName", realFileName);
				map.put("fileType", realFileName.substring(realFileName.lastIndexOf(".") + 1));
				map.put("fileSize", multipartFile.getSize());
				map.put("uploadDate", DateUtils.getDate());
				map.put("uploadTime", DateUtils.getTime());
				
				int i = MybatisUtils.insert("file.mysql.insertFile", map);
				if(i == 0){
					// 操作数据失败,把上传的文件删除
					destFile.delete();
					return "failure";
				}
				System.out.println(destFile.getAbsolutePath());
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return "failure";
		}
		return "success";
	}


springMVC中的多文件上传,要求页面的input标签name属性不能相同,否则只当一个文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值