SpringMVC实现文件上传并解析XML

1.配置文件spring-mvc.xml文件

<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->    
   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    
       <property name="defaultEncoding" value="UTF-8"/>    
       <!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->    
       <property name="maxUploadSize" value="200000"/>    
   </bean>    
       
   <!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException -->    
   <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->    
   <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">    
       <property name="exceptionMappings">    
           <props>    
               <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 -->    
               <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>    
           </props>    
       </property>    
   </bean>    
参考博客:http://blog.csdn.net/jadyer/article/details/7575934

MVC项目使用easyui的filebox控件上传文件

参考博客:http://www.cnblogs.com/mora1988/p/5546489.html
控制层代码:

/**
* Multipart方式上传文件
* 注意事项:1.导入commons-fileupload,commons-iojar包;2.spring-servlet.xml中配置上传文件的大小
*/

@RequestMapping(value = "/upload")

@ResponseBody

public String upload(HttpServletRequest request) throws Exception{

CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());

if(multipartResolver.isMultipart(request)){

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

Iterator<String> iterator = multipartRequest.getFileNames();

while(iterator.hasNext()){

MultipartFile multipartFile = multipartRequest.getFile(iterator.next());
//此处可以通过multiparFile获取文件相关信息插入数据库
//插入数据
			   a.setFile_name(multipartFile.getOriginalFilename());
			   String fileSize = String.valueOf(multipartFile.getSize());
			   a.setFile_size(fileSize);
			   a.setFile_type(multipartFile.getContentType().substring(5));
			   a.setUpload_status("0");
			   a.setUpload_describe("Uploading");
			   i =  aService.insertUpload(a);


if(multipartFile.getOriginalFilename() == null || multipartFile.getOriginalFilename().equals("")){

continue;

}

//上传文件到这里,获取该文件的文件流接下来就可以通过这个文件流对文件进行相关的操作:

InputStream inputStream = multipartFile.getInputStream();

String encoding="UTF-8";

InputStreamReader read = new InputStreamReader(inputStream,encoding);//考虑到编码格式

BufferedReader bufferedReader = new BufferedReader(read);
//此处可以通过bufferedReader解析上传的文件。例如xml
//解析xml
					   SAXReader saxReader = new SAXReader();
					   Document	document = saxReader.read(bufferedReader);
					   // 获取根元素
				       Element root = document.getRootElement();
					   
//将获取到的数据插入到数据库
//插入b表数据
				       b x =  this.getNodes(root);//从根节点开始遍历所有节点  
				       
				       j = gafXmlService.insertGafFooter(x);
					   

String lineTxt = null;

while((lineTxt = bufferedReader.readLine()) != null){

System.out.println(lineTxt+"---");

}

read.close();

}

}

return "200";

}



//递归遍历所有节点和属性
	public GafFooter getNodes(Element node){  
		String nodeName = node.getName();
		String nodeText = node.getTextTrim();
		if(nodeName=="aa"){
        	gafFooter.setAa(nodeText);
       }
	    //递归遍历当前节点所有的子节点  
	    List<Element> listElement=node.elements();//所有一级子节点的list  
	    for(Element e:listElement){//遍历所有一级子节点  
	        this.getNodes(e);//递归  
	    }  
	    return b;
	} 

参考博客:http://wenku.baidu.com/link?url=pSAri7WCChC0kdAWxtaTZU52qarCXz33xEzwkV5izbukuHByjTicAhDKmem18KVHjPwXjG2Wt2JAAbdfQ-ndi6mrSxeh_-yNI41a_zPz3si

参考博客:http://blog.csdn.net/awangz/article/details/9471161



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值