亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

關于SpringMVC的文件上傳

2019-11-14 22:12:33
字體:
來源:轉載
供稿:網友
關于SPRingMVC的文件上傳

關于文件的上傳,之前寫過2篇文章,基于Struts2框架,下面給出文章鏈接:

《關于Struts2的文件上傳》:http://www.49028c.com/lichenwei/p/3927964.html

《關于Struts2的多文件上傳》:http://www.49028c.com/lichenwei/p/3928200.html

其實文件上傳的原理都是一樣的,基于SpringMVC的文件上傳實現要比Struts2要來得簡單許多。

好了,廢話不多說,直接切入主題吧,關于上傳原理不了解的朋友,可以輕戳上面2篇文章的鏈接。

1、萬變不離其宗,要實現文件的上傳需要對應的JAR包:

1、commons-fileupload-1.2.2.jar

2、commons-io-2.0.1.jar

2、要實現SpringMVC的文件上傳,需要配置一下文件:

 1     <!-- SpringMVC上傳文件時,需要配置MultipartResolver處理器 --> 2     <bean id="multipartResolver" 3         class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 4         <property name="defaultEncoding" value="UTF-8" /> 5         <!-- 指定所上傳文件的總大小不能超過200KB。注意maxUploadSize屬性的限制不是針對單個文件,而是所有文件的容量之和 --> 6         <property name="maxUploadSize" value="-1" /> 7     </bean> 8  9     <!-- SpringMVC在超出上傳文件限制時,會拋出org.springframework.web.multipart.MaxUploadSizeExceededException -->10     <!-- 該異常是SpringMVC在檢查上傳的文件信息時拋出來的,而且此時還沒有進入到Controller方法中 -->11     <bean id="exceptionResolver"12         class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">13         <property name="exceptionMappings">14             <props>15                 <!-- 遇到MaxUploadSizeExceededException異常時,自動跳轉到XXX頁面 -->16                 <prop17                     key="org.springframework.web.multipart.MaxUploadSizeExceededException">跳轉XXX頁面</prop>18             </props>19         </property>20     </bean>

3、上傳頁面

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <% 4     String path = request.getContextPath(); 5     String basePath = request.getScheme() + "://" 6             + request.getServerName() + ":" + request.getServerPort() 7             + path + "/"; 8 %> 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">11 <html>12 <head>13 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">14 <title>上傳文件</title>15 </head>16 <body>17     <form action="<%=basePath%>upload.do" method="post"18         enctype="multipart/form-data">19         <input type="hidden" name="tuzi" value="tuzi">20         上傳文件:<input type="file" name="uploadfile">21          <input type="submit" value="上傳">22     </form>23 </body>24 </html>

4、文件處理類:

 1 package lcw.controller; 2  3 import java.io.File; 4 import java.io.IOException; 5  6 import javax.servlet.http.HttpServletRequest; 7  8 import org.apache.commons.io.FileUtils; 9 import org.springframework.stereotype.Controller;10 import org.springframework.web.bind.annotation.RequestMapping;11 import org.springframework.web.bind.annotation.RequestParam;12 import org.springframework.web.multipart.commons.CommonsMultipartFile;13 14 /**15  * 16  * 文件上傳處理類17  *18  */19 @Controller20 public class FileController {21 22     //單文件上傳23     @RequestMapping(value = "/upload.do")24     public String queryFileData(25             @RequestParam("uploadfile") CommonsMultipartFile file,26             HttpServletRequest request) {27         // MultipartFile是對當前上傳的文件的封裝,當要同時上傳多個文件時,可以給定多個MultipartFile參數(數組)28         if (!file.isEmpty()) {29             String type = file.getOriginalFilename().substring(30                     file.getOriginalFilename().indexOf("."));// 取文件格式后綴名31             String filename = System.currentTimeMillis() + type;// 取當前時間戳作為文件名32             String path = request.getsession().getServletContext()33                     .getRealPath("/upload/" + filename);// 存放位置34             File destFile = new File(path);35             try {36                 // FileUtils.copyInputStreamToFile()這個方法里對IO進行了自動操作,不需要額外的再去關閉IO流37                 FileUtils38                         .copyInputStreamToFile(file.getInputStream(), destFile);// 復制臨時文件到指定目錄下39             } catch (IOException e) {40                 e.printStackTrace();41             }42             return "redirect:upload_ok.jsp";43         } else {44             return "redirect:upload_error.jsp";45         }46     }47 }

5、看一下實現效果圖:

6、再來看下關于多文件上傳,其實原理還是一樣,只不過是把CommonsMultipartFile類對象換成一個數組,然后用一個for循環去遍歷這個數組,并分別存入。

 1 package lcw.controller; 2  3 import java.io.File; 4 import java.io.IOException; 5  6 import javax.servlet.http.HttpServletRequest; 7  8 import org.apache.commons.io.FileUtils; 9 import org.springframework.stereotype.Controller;10 import org.springframework.web.bind.annotation.RequestMapping;11 import org.springframework.web.bind.annotation.RequestParam;12 import org.springframework.web.multipart.commons.CommonsMultipartFile;13 14 /**15  * 16  * 文件上傳處理類17  *18  */19 @Controller20 public class FileController {21 22     //單文件上傳23     @RequestMapping(value = "/upload.do")24     public String queryFileData(25             @RequestParam("uploadfile") CommonsMultipartFile file,26             HttpServletRequest request) {27         // MultipartFile是對當前上傳的文件的封裝,當要同時上傳多個文件時,可以給定多個MultipartFile參數(數組)28         if (!file.isEmpty()) {29             String type = file.getOriginalFilename().substring(30                     file.getOriginalFilename().indexOf("."));// 取文件格式后綴名31             String filename = System.currentTimeMillis() + type;// 取當前時間戳作為文件名32             String path = request.getSession().getServletContext()33                     .getRealPath("/upload/" + filename);// 存放位置34             File destFile = new File(path);35             try {36                 // FileUtils.copyInputStreamToFile()這個方法里對IO進行了自動操作,不需要額外的再去關閉IO流37                 FileUtils38                         .copyInputStreamToFile(file.getInputStream(), destFile);// 復制臨時文件到指定目錄下39             } catch (IOException e) {40                 e.printStackTrace();41             }42             return "redirect:upload_ok.jsp";43         } else {44             return "redirect:upload_error.jsp";45         }46     }47 48     //多文件上傳49     @RequestMapping(value = "/uploads.do")50     public String queryFileDatas(51             @RequestParam("uploadfile") CommonsMultipartFile[] files,52             HttpServletRequest request) {53         if (files != null) {54             for (int i = 0; i < files.length; i++) {55                 String type = files[i].getOriginalFilename().substring(56                         files[i].getOriginalFilename().indexOf("."));// 取文件格式后綴名57                 String filename = System.currentTimeMillis() + type;// 取當前時間戳作為文件名58                 String path = request.getSession().getServletContext()59                         .getRealPath("/upload/" + filename);// 存放位置60                 File destFile = new File(path);61                 try {62                     FileUtils.copyInputStreamToFile(files[i].getInputStream(),63                             destFile);// 復制臨時文件到指定目錄下64                 } catch (IOException e) {65                     e.printStackTrace();66                 }67             }68             return "redirect:upload_ok.jsp";69         } else {70             return "redirect:upload_error.jsp";71         }72 73     }74 75 }

7、看下效果圖:

作者:Balla_兔子出處:http://www.49028c.com/lichenwei/本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。正在看本人博客的這位童鞋,我看你氣度不凡,談吐間隱隱有王者之氣,日后必有一番作為!旁邊有“推薦”二字,你就順手把它點了吧,相得準,我分文不收;相不準,你也好回來找我!


上一篇:Criterion &amp; DetachedCriteria

下一篇:ActiveMQ

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩网| 久久精品国产视频| 日韩中文字幕在线观看| 国产日韩欧美中文在线播放| 国产精品免费久久久久久| 九九热在线精品视频| 久久久久久久久久久91| 国产综合视频在线观看| 懂色aⅴ精品一区二区三区蜜月| 亚洲精品欧美极品| 精品偷拍一区二区三区在线看| 欧美日本高清视频| 超薄丝袜一区二区| 狠狠躁天天躁日日躁欧美| 国产aⅴ夜夜欢一区二区三区| 亚洲免费av片| 91在线精品播放| 日韩精品视频在线播放| 亚洲国产精品va在看黑人| 欧美性猛交xxxxx水多| 国产亚洲精品久久久优势| 日韩中文av在线| 亚洲精品女av网站| 在线视频一区二区| 亚洲美女在线看| 日韩美女免费线视频| 91精品久久久久久久久久久久久| 国产精品com| 福利视频导航一区| 日韩人体视频一二区| 欧美性xxxxxx| 在线播放国产精品| 国产精品视频久久久| 欧美综合在线观看| 美日韩在线视频| 欧美性高潮床叫视频| 国产极品精品在线观看| 九九精品视频在线观看| 国产精品久久久久久久美男| 久久久精品2019中文字幕神马| 亚洲精选在线观看| 国产精品视频公开费视频| 高清一区二区三区四区五区| 奇米成人av国产一区二区三区| 伊人久久五月天| 久久久久日韩精品久久久男男| 久久精品一区中文字幕| 国产在线拍揄自揄视频不卡99| 乱亲女秽乱长久久久| 亚洲三级 欧美三级| 日韩理论片久久| 中文字幕久久久av一区| 国内精品久久久久| 欧美高清无遮挡| 亚洲第一免费网站| 国产精品欧美日韩久久| 国产在线精品自拍| 久久精品久久久久| 国产成人91久久精品| 97人人爽人人喊人人模波多| 国产成人鲁鲁免费视频a| 91精品久久久久久久久久久久久| 国产综合色香蕉精品| 91日本视频在线| 欧美精品激情视频| 日韩人体视频一二区| 亚洲a在线观看| 成人xvideos免费视频| 欧美中文在线观看国产| 成人黄色av播放免费| 欧美超级免费视 在线| 91精品国产高清久久久久久久久| 亚洲最大av网| 久久成人国产精品| 日韩av片免费在线观看| 国产午夜一区二区| 国产一区二区三区四区福利| 日韩高清av在线| 中文字幕在线亚洲| 亚洲国产一区二区三区四区| 日韩中文娱乐网| 精品视频在线观看日韩| 亚洲女性裸体视频| 亚洲欧洲一区二区三区在线观看| 久久天天躁狠狠躁老女人| 久热在线中文字幕色999舞| 亚洲高清久久网| 国产精品久久久久91| 欧美大片在线影院| 黑人巨大精品欧美一区二区三区| 日韩中文理论片| 日本aⅴ大伊香蕉精品视频| 国产亚洲精品美女久久久久| 欧美激情国产精品| 亚洲精品综合久久中文字幕| 亚洲欧美制服综合另类| 日韩av在线电影网| 精品亚洲男同gayvideo网站| 欧美电影免费看| 中文字幕在线精品| 中文字幕亚洲一区二区三区五十路| 国产精品网红福利| 97视频网站入口| 狠狠躁夜夜躁人人爽天天天天97| 欧美视频专区一二在线观看| 日韩精品视频观看| 97在线精品国自产拍中文| 97成人精品视频在线观看| 日韩免费高清在线观看| 日韩欧美国产网站| 亚洲欧美日韩中文在线制服| 日韩中文字幕不卡视频| 亚洲男人天堂网| 欧美视频精品一区| 国产精品视频1区| 红桃视频成人在线观看| 国产热re99久久6国产精品| 久久久天堂国产精品女人| 久99九色视频在线观看| 亚洲一区美女视频在线观看免费| 亚洲欧美国产va在线影院| 国产精品在线看| 日韩资源在线观看| 成人激情在线观看| 色综合天天狠天天透天天伊人| 欧美高清videos高潮hd| 亚洲www永久成人夜色| 精品久久久久久国产| 日韩视频永久免费观看| 国产精品黄视频| 精品久久久一区二区| 亚洲人成网站777色婷婷| www亚洲欧美| 热久久视久久精品18亚洲精品| 日韩有码在线视频| 亚洲国产精品va在线看黑人动漫| 国产精品av在线播放| 国产91成人video| 欧美亚洲成人精品| 日韩麻豆第一页| 热草久综合在线| xxxxx成人.com| 色yeye香蕉凹凸一区二区av| 日韩综合中文字幕| 欧美日韩一区二区在线播放| 亚洲男人天天操| 欧美超级免费视 在线| 国内免费精品永久在线视频| 欧美大片在线影院| 国产精品普通话| 精品视频偷偷看在线观看| 欧美成人黑人xx视频免费观看| 久久综合免费视频影院| www.日韩免费| 国产成人精品在线| 最近2019中文字幕大全第二页| 懂色av影视一区二区三区| 久久久久久久香蕉网| 亚洲欧美变态国产另类| 午夜精品久久久久久99热软件| 97香蕉久久超级碰碰高清版| 国产情人节一区| 日韩黄色高清视频| 欧美疯狂xxxx大交乱88av|