Java实现异步上传文件

1、首先在pom.xml文件中添加依赖

<dependency>
     <groupId>commons-fileupload</groupId>
     <artifactId>commons-fileupload</artifactId>
     <version>1.3</version>
</dependency>

2、在applicationContext.xml配置文件添加配置

<!-- 文件上传 -->
<bean id="multipartResolver"
       class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
       <property name="defaultEncoding" value="utf-8"/>
       <property name="maxUploadSize" value="-1"/>
</bean>

3、HTML代码

<div>
     <form action="#" id = "uploadForm" method="post" enctype="multipart/form-data">
        <div>
            <label>姓名:</label>
            <input id="name" name="name">
        </div>
        <div>
            <label>密码:</label>
            <input id="password" name="password" type="password">
        </div>
        <div>
            <label>图像</label>
            <input id="file" name="file" type="file" multiple>
        </div>
     </form>
     <button id="submit">提交</button>
 </div>

4、JavaScript代码

<script type="text/javascript">
      $("#submit").click(function(){
           var formData = new FormData($("#uploadForm")[0]);
           $.ajax({
               url : 'file/upload',
               data:formData,
               type:'post',
               dataType:'json',
               success:function(data){}
           });
      });
  </script>

5、服务端接收代码:

      /**
	 * 文件上传
	 * @param file
	 * @param request
	 * @throws IOException
	 */
	@RequestMapping("/upload")
	@ResponseBody
	public void upload(MultipartFile file,HttpServletRequest request)
	          throws IOException{
		if(file.isEmpty()){
			logger.info("文件不存在!");
		}else{
			logger.info("文件存在!");
			String fileName = file.getOriginalFilename();
			String path = request.getSession().getServletContext().getRealPath("/")+"/upload";
			File dirFile = new File(path,fileName);
			if(!dirFile.getParentFile().exists()){
				dirFile.getParentFile().mkdirs();
			}
			String filePath = path + File.separator +fileName;
			file.transferTo(new File(filePath));
		}
	}

     运行jsp就可以了,但是图片在eclipse中是看不到的,只要打包成war包,到Tomcat中可以看到。  

猜你喜欢

转载自blog.csdn.net/daxudada/article/details/80405146