溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringMVC+uploadify上傳文件

發(fā)布時(shí)間:2020-06-15 20:23:14 來源:網(wǎng)絡(luò) 閱讀:3080 作者:06peng 欄目:web開發(fā)

前臺(tái)使用的是jquery的jquery.uploadify-v2.1.0插件,使用ajax。使用代碼如下:

 

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

這句話就是將請(qǐng)求發(fā)送到對(duì)應(yīng)的uploadcontroller中,sortId是表示文件所屬分類。

看下SpringMVC的使用方法:

在配置文件中添加如下配置:該文件即是SpringMVC對(duì)應(yīng)的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. }  

結(jié)果報(bào)錯(cuò)了:

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

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

無法實(shí)例化,不知道是什么原因,對(duì)Spring不太熟悉,只能嘗試用其他方式來實(shí)現(xiàn)了。

后來改成下面這種實(shí)現(xiàn)了:

 

  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.            //重點(diǎn)就是這兩句      
  19.            File localFile = new File(path);        
  20.            file.transferTo(localFile);        
  21.        }      
  22.     }      
  23. }    

 希望大家有好的方法提出來,一起學(xué)習(xí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI