天天看點

SpringMVC+uploadify上傳檔案

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

XML/HTML代碼  

jQuery("#uploadify").uploadify({        

   'script' : '../imageUpload/upload/' + $("#sortId").val() + '.json',    

這句話就是将請求發送到對應的uploadcontroller中,sortId是表示檔案所屬分類。

看下SpringMVC的使用方法:

在配置檔案中添加如下配置:該檔案即是SpringMVC對應的DispatcherServlet配置檔案

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        

        <property name="defaultEncoding" value="utf-8"></property>        

    </bean>    

一開始使用如下的方法上傳:

Java代碼  

@RequestMapping(method = RequestMethod.POST, params = "action=upload")         

public String upload(ModelMap model, MultipartFile uploadify,BindingResult result) {         

}  

結果報錯了:

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

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

無法執行個體化,不知道是什麼原因,對Spring不太熟悉,隻能嘗試用其他方式來實作了。

後來改成下面這種實作了:

@RequestMapping(value = "/upload" + SORTID_BINDER_PATH, method = RequestMethod.POST)        

public void upload(HttpServletRequest request, HttpServletResponse response, @PathVariable java.lang.Integer sortId) {        

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

    commonsMultipartResolver.setDefaultEncoding("utf-8");         

if (commonsMultipartResolver.isMultipart(request)) {         

    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;         

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

    while (iter.hasNext()) {         

       MultipartFile file = multipartRequest.getFile((String) iter.next());         

       if (file != null) {         

           String fileName = "";        

           fileName = sdf.format(new Date()) + "_" + file.getOriginalFilename();        

           String path = filePath + fileName;        

           uploadPath += fileName;        

           //重點就是這兩句      

           File localFile = new File(path);        

           file.transferTo(localFile);        

       }      

    }      

}    

 希望大家有好的方法提出來,一起學習。

     本文轉自06peng 51CTO部落格,原文連結:http://blog.51cto.com/06peng/963471,如需轉載請自行聯系原作者