SpringMVC+uploadify上传文件
前台使用的是jquery的jquery.uploadify-v2.1.0插件,使用ajax。使用代码如下:
XML/HTML代码 jQuery("#uploadify").uploadify({ 'script':'../p_w_picpathUpload/upload/'+$("#sortId").val()+'.json',
这句话就是将请求发送到对应的uploadcontroller中,sortId是表示文件所属分类。
看下SpringMVC的使用方法:
在配置文件中添加如下配置:该文件即是SpringMVC对应的DispatcherServlet配置文件
XML/HTML代码 <beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <propertyname="defaultEncoding"value="utf-8"></property> </bean>
一开始使用如下的方法上传:
Java代码 @RequestMapping(method=RequestMethod.POST,params="action=upload") publicStringupload(ModelMapmodel,MultipartFileuploadify,BindingResultresult){ }
结果报错了:
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class
[org.springframework.web.multipart.MultipartFile]: Specified class is an interface
无法实例化,不知道是什么原因,对Spring不太熟悉,只能尝试用其他方式来实现了。
后来改成下面这种实现了:
Java代码 @RequestMapping(value="/upload"+SORTID_BINDER_PATH,method=RequestMethod.POST) publicvoidupload(HttpServletRequestrequest,HttpServletResponseresponse,@PathVariablejava.lang.IntegersortId){ CommonsMultipartResolvercommonsMultipartResolver=newCommonsMultipartResolver(request.getSession().getServletContext()); commonsMultipartResolver.setDefaultEncoding("utf-8"); if(commonsMultipartResolver.isMultipart(request)){ MultipartHttpServletRequestmultipartRequest=(MultipartHttpServletRequest)request; Iterator<String>iter=multipartRequest.getFileNames(); while(iter.hasNext()){ MultipartFilefile=multipartRequest.getFile((String)iter.next()); if(file!=null){ StringfileName=""; fileName=sdf.format(newDate())+"_"+file.getOriginalFilename(); Stringpath=filePath+fileName; uploadPath+=fileName; //重点就是这两句 FilelocalFile=newFile(path); file.transferTo(localFile); } } }
希望大家有好的方法提出来,一起学习。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。