Spring MVC实现的带参数的form表单多文件上传

java代码 

@RequestMapping(value="notice/addNotice")
	@ResponseBody
	public JSONObject addNotice(HttpServletRequest request,
			HttpServletResponse response, @RequestParam MultipartFile[] myfiles) throws Exception {
		
  // 如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解

        // 如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解

        // 并且上传多个文件时,前台表单中的所有<input

for (MultipartFile myfile : myfiles) {
			
			            // if (myfile.isEmpty()) {
			
			            // System.out.println("文件未上传");
			
			            // } else {
			
			            System.out.println("文件长度: " + myfile.getSize());
			
			            System.out.println("文件类型: " + myfile.getContentType());
			
			            System.out.println("文件名称: " + myfile.getName());
			
			            System.out.println("文件原名: " + myfile.getOriginalFilename());
			
			            System.out.println("========================================");
			
			            // 如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中
			
			            // 这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
			
			            // String realPath =
			
			            // request.getSession().getServletContext().getRealPath("/FileTest/WebContent/WEB-INF/upload");
			
			            String realPath = request.getSession().getServletContext()
			
			                    .getRealPath("/upload");
			
			            System.out.println(realPath);
			
			 
			
			            FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(
			
			                    realPath, myfile.getOriginalFilename()));
			
			            // }
			
			        }

		return null;
	}

jsp代码

<body>
		<form action="notice/addNotice.do" enctype="multipart/form-data" method="post">
			<p>
				选择图片:
				<input type="file" name="myfiles">
			</p>
			<p>
				<input type="submit" value="提交">
			</p>
		</form>
	</body>

 

转载于:https://my.oschina.net/whatwhy/blog/737123

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值