博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC+uploadify上传文件
阅读量:7197 次
发布时间:2019-06-29

本文共 1897 字,大约阅读时间需要 6 分钟。

前台使用的是jquery的jquery.uploadify-v2.1.0插件,使用ajax。使用代码如下:

 

 
  1. XML/HTML代码  
  2.       
  3. jQuery("#uploadify").uploadify({        
  4.    'script' : '../imageUpload/upload/' + $("#sortId").val() + '.json',    

这句话就是将请求发送到对应的uploadcontroller中,sortId是表示文件所属分类。

看下SpringMVC的使用方法:

在配置文件中添加如下配置:该文件即是SpringMVC对应的DispatcherServlet配置文件

 
  1. XML/HTML代码  
  2.       
  3. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        
  4.         <property name="defaultEncoding" value="utf-8"></property>        
  5.     </bean>    

一开始使用如下的方法上传:

 

 
  1. Java代码  
  2.       
  3. @RequestMapping(method = RequestMethod.POST, params = "action=upload")         
  4. public String upload(ModelMap model, MultipartFile uploadify,BindingResult result) {         
  5.        
  6. }  

结果报错了:

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class

[org.springframework.web.multipart.MultipartFile]: Specified class is an interface

无法实例化,不知道是什么原因,对Spring不太熟悉,只能尝试用其他方式来实现了。

后来改成下面这种实现了:

 

 
  1. Java代码  
  2.       
  3. @RequestMapping(value = "/upload" + SORTID_BINDER_PATH, method = RequestMethod.POST)        
  4. public void upload(HttpServletRequest request, HttpServletResponse response, @PathVariable java.lang.Integer sortId) {        
  5.     CommonsMultipartResolver commonsMultipartResolver = new   CommonsMultipartResolver(request.getSession().getServletContext());         
  6.     commonsMultipartResolver.setDefaultEncoding("utf-8");         
  7.         
  8. if (commonsMultipartResolver.isMultipart(request)) {         
  9.     MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;         
  10.     Iterator<String> iter = multipartRequest.getFileNames();         
  11.     while (iter.hasNext()) {         
  12.        MultipartFile file = multipartRequest.getFile((String) iter.next());         
  13.        if (file != null) {         
  14.            String fileName = "";        
  15.            fileName = sdf.format(new Date()) + "_" + file.getOriginalFilename();        
  16.            String path = filePath + fileName;        
  17.            uploadPath += fileName;        
  18.            //重点就是这两句      
  19.            File localFile = new File(path);        
  20.            file.transferTo(localFile);        
  21.        }      
  22.     }      
  23. }    

 希望大家有好的方法提出来,一起学习。

     本文转自06peng 51CTO博客,原文链接:http://blog.51cto.com/06peng/963471,如需转载请自行联系原作者

你可能感兴趣的文章
php 正则 常用基础
查看>>
理解及操作环境变量(基于Mac操作)
查看>>
[Spark][python]以DataFrame方式打开Json文件的例子
查看>>
云平台服务器应急检查步骤
查看>>
参照企业微信审批业务,在Winform开发框架中工作流模块的实现业务审批
查看>>
freemark标签从后台接过来数据Boolean在前台还是Boolean输出(四)
查看>>
根据类信息和提供的代理类名称,生成字节码,然后通过流的方式写到磁盘文件中(动态代理)...
查看>>
Linux资源分析工具杂谈(长文慎入)
查看>>
前端组件化Polymer入门教程(7)——Local DOM
查看>>
创业感悟:技术兄弟为什么一直没有起来(1)
查看>>
springboot(九):定时任务
查看>>
UDP转TCP隧道工具udptunnel
查看>>
Unable to launch the IIS Express Web server
查看>>
win7 使用emeidter后无法右键新建记事本
查看>>
向mysql的innodb表快速插入数据的php程序
查看>>
kvm虚拟机操作常用命令
查看>>
mysql管理之安全机制
查看>>
RAID 磁盘阵列
查看>>
Linux服务器部署系列之七—OpenLDAP篇
查看>>
CCNA之ccna-路由器的eigrp协议的配置试验
查看>>