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.youkuaiyun.com/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.youkuaiyun.com/awangz/article/details/9471161