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

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

SpringMVC上傳文件FileUpload

2019-11-14 09:17:06
字體:
來源:轉載
供稿:網友

我是在已經搭建好的sPRingMVC環境下,maven工程中的pom.xml所需要的jar包(其中spring上傳文件的兩個主要jar:commons-fileupload.jar和commons-io.jar):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zhihua</groupId> <artifactId>SpringMVC_FileUpload</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringMVC_FileUpload Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!-- spring版本號 --> <spring.version>3.2.8.RELEASE</spring.version> <!-- junit版本號 --> <junit.version>4.10</junit.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- springMVC上傳文件依賴 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!-- 添加Spring依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!--spring單元測試依賴 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <!-- jstl標簽支持 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- Servlet核心包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <!--jsp --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>SpringMVC_FileUpload</finalName> </build></project>

在spring-mvc.xml中添加代碼:

<!-- springMVC上傳文件時,需要配置MultipartResolver處理器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property> <property name="maxUploadSize" value="10485760000"></property> <property name="maxInMemorySize" value="40960"></property> </bean>

前端頁面(fileUpload.jsp)和上傳成功返回頁面(success.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>springmvc-文件上傳</title></head><body> <h1>采用流的方式上傳文件</h1> <form name="form1" action="<c:url value='/fileUpload/upload_01'/>" method="post" enctype="multipart/form-data"> <input type="file" name="file_01"/> <input type="submit" value="fileupload"/> </form> <br> <h1>采用multipart提供的file.transfer方法上傳文件1</h1> <form name="form2" action="<c:url value='/fileUpload/upload_02'/>" method="post" enctype="multipart/form-data"> <input type="file" name="file_02"/> <input type="submit" value="fileupload"/> </form> <br> <h1>采用multipart提供的file.transfer方法上傳文件2</h1> <form name="form2" action="<c:url value='/fileUpload/upload_03'/>" method="post" enctype="multipart/form-data"> <input type="file" name="file_03"/> <input type="submit" value="fileupload"/> </form> <br> <h1>使用spring MVC提供的方法上傳文件</h1> <form name="form2" action="<c:url value='/fileUpload/upload_spring'/>" method="post" enctype="multipart/form-data"> <input type="file" name="file_03"/> <input type="submit" value="fileupload"/> </form></body></html><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <h2>文件上傳成功!</h2></body></html>

controller 的代碼:

package com.zhihua.controller;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Date;import java.util.Iterator;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartFile;import org.springframework.web.multipart.commons.CommonsMultipartResolver;@Controller@RequestMapping("/fileUpload")public class FileUploadController { /** * 通過流的方式上傳文件 * @RequestParam("file") 將name=file控件得到的文件封裝成CommonsMultipartFile 對象 * <請替換成功能描述> <br> * <請替換成詳細描述> * @param file * @return * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_01") public String fileUpload_1(@RequestParam("file_01")CommonsMultipartFile file)throws IOException { //用來檢測程序運行時間 long startTime = System.currentTimeMillis(); System.out.println("fileName:"+file.getOriginalFilename()); try{ //獲取輸出流 OutputStream os = new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename()); //獲取輸入流CommonsMultipartFile中可以直接得到文件的流 InputStream is = file.getInputStream(); int temp; //一個一個字節的讀取并寫入 while((temp=is.read())!=(-1)){ os.write(temp); } os.flush(); os.close(); is.close(); }catch(Exception e){ e.printStackTrace(); } long endTime = System.currentTimeMillis(); System.out.println("方法一的運行時間:"+String.valueOf(endTime-startTime)+"ms"); return "view/success"; } /** * 采用file.Transto 來保存上傳的文件 * <請替換成功能描述> <br> * <請替換成詳細描述> * @param file * @return * @throws IOException * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_02") public String fileUpload_2(@RequestParam("file_02") CommonsMultipartFile file)throws IOException { long startTime = System.currentTimeMillis(); System.out.println("fileName:"+file.getOriginalFilename()); String path = "E:/"+new Date().getTime()+file.getOriginalFilename(); File newFile = new File(path); //通過CommonsMultipartFile 的方法直接寫文件 file.transferTo(newFile); long endTime = System.currentTimeMillis(); System.out.println("方法二的運行時間:"+String.valueOf(endTime-startTime)+"ms"); return "view/success"; } /** * 使用MultipartFile上傳文件 * <請替換成功能描述> <br> * <請替換成詳細描述> * @param file * @return * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_03") public String fileUpload_3(@RequestParam(value="file_03",required=false)MultipartFile file, HttpServletRequest request){ String path = request.getsession().getServletContext().getRealPath("upload"); System.out.println(path); String fileName = file.getOriginalFilename(); File targetFile = new File(path,fileName); if(!targetFile.exists()){ targetFile.mkdirs(); } //保存 try { file.transferTo(targetFile); }catch(Exception e){ e.printStackTrace(); } return "view/success"; } /** * 采用spring提供的上傳文件的方法 * <請替換成功能描述> <br> * <請替換成詳細描述> * @param request * @return * @throws IllegalStateException * @throws IOException * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_spring") public String springUpload(HttpServletRequest request)throws IllegalStateException, IOException{ long startTime = System.currentTimeMillis(); //將當前上下文初始化給 CommonsMutipartResolver (多部分解析器) CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //檢查form中是否有enctype="multipart/form-data" if(multipartResolver.isMultipart(request)) { //將request變成多request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; //獲取multiRequest中所有的文件名 Iterator iter = multiRequest.getFileNames(); while(iter.hasNext()){ //一次遍歷所有的文件 MultipartFile file = multiRequest.getFile(iter.next().toString()); if(file!=null){ String path = "E:/springUpload"+file.getOriginalFilename(); //上傳 file.transferTo(new File(path)); } } } long endTime = System.currentTimeMillis(); System.out.println("方法三的運行時間:"+String.valueOf(endTime-startTime)+"ms"); return "view/success"; }}

好了,全部代碼都給出了,“蛋蛋”是測試成功了,感興趣的朋友可以去比較不同上傳方式的效率!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人av在线影院| 亚洲免费中文字幕| 久久久精品999| 日日噜噜噜夜夜爽亚洲精品| 91天堂在线观看| 亚洲成年人在线播放| 欧美成人精品一区| 国产精品自拍小视频| 日韩av一卡二卡| 91av成人在线| 亚洲国产精品久久91精品| 欧美性猛交xxxx久久久| 日韩中文字幕在线视频| 欧美极品少妇xxxxⅹ裸体艺术| 久久久久久久久亚洲| 精品国产一区二区在线| 国产美女精品视频| 91免费综合在线| 欧美成人中文字幕在线| 国产玖玖精品视频| 美日韩精品视频免费看| 91在线网站视频| 日韩在线视频二区| 91精品啪aⅴ在线观看国产| 国产精品吹潮在线观看| 国产精品自产拍在线观看中文| 亚洲人成网站在线播| 亚洲成人激情视频| 欧美性xxxxx极品娇小| 亚洲香蕉在线观看| 亚洲高清福利视频| 亚洲综合精品一区二区| 欧美日韩国产专区| 国产亚洲精品美女| 色伦专区97中文字幕| 欧美一区二区三区精品电影| 国产精品麻豆va在线播放| 九九九久久久久久| 九九热最新视频//这里只有精品| 美女999久久久精品视频| 国产美女被下药99| www.国产精品一二区| 国产精品久久97| 欧美激情视频网| 亚洲色图狂野欧美| 日韩av片电影专区| 欧美日韩在线视频一区二区| 亚洲区bt下载| 亚洲人成网站777色婷婷| 中文字幕亚洲欧美日韩在线不卡| 91色在线视频| 91av视频在线观看| 亚洲精品国产成人| 国产精品网站入口| 久久影院在线观看| 51午夜精品视频| 日韩欧美一区视频| 日韩中文字幕久久| 国产精品日韩在线一区| 北条麻妃一区二区三区中文字幕| 2021久久精品国产99国产精品| 欧美巨猛xxxx猛交黑人97人| 亚洲日本成人网| 爽爽爽爽爽爽爽成人免费观看| 中文字幕欧美日韩va免费视频| 欧美日韩亚洲激情| 久久不射电影网| 操人视频在线观看欧美| 亚洲国产精品久久91精品| 一区二区在线免费视频| 午夜精品一区二区三区av| 黑丝美女久久久| 97在线视频免费| 日韩黄在线观看| 成人国产精品久久久久久亚洲| 国产精品久久久久av| 欧美高清一级大片| 亚洲欧美日韩国产中文| 全球成人中文在线| 黑人极品videos精品欧美裸| 亚洲精品国产福利| 欧美又大又硬又粗bbbbb| 91在线视频免费| 欧美激情视频播放| 亚洲一区二区三区视频播放| 亚洲精品按摩视频| 日韩成人小视频| 最近2019年手机中文字幕| 色悠久久久久综合先锋影音下载| 亚洲人成五月天| 欧美激情精品久久久| 亚洲美女视频网站| 日韩中文字幕免费看| 91久久嫩草影院一区二区| 97国产一区二区精品久久呦| 久久久久久噜噜噜久久久精品| 久久精品视频亚洲| 国产一区二区三区日韩欧美| 日韩专区在线观看| 欧美裸体xxxx极品少妇| 91精品国产色综合久久不卡98口| 国产精品jizz在线观看麻豆| 成人国产在线激情| 日韩精品小视频| 精品亚洲一区二区三区| 日韩精品高清在线| 欧美老肥婆性猛交视频| 欧美亚洲视频一区二区| 久久久精品免费视频| 狠狠躁夜夜躁人人爽超碰91| 97精品免费视频| xvideos成人免费中文版| 成人网页在线免费观看| 国产在线拍偷自揄拍精品| 欧美性猛交xxxx富婆弯腰| 精品中文字幕在线2019| 国产一区二中文字幕在线看| 91精品免费久久久久久久久| 久久97精品久久久久久久不卡| 日韩av在线免费播放| 2020久久国产精品| 91黑丝高跟在线| 欧美日韩亚洲一区二区| 精品国产一区二区三区四区在线观看| 国产精品一区二区av影院萌芽| 亚洲精品suv精品一区二区| 久久久精品在线观看| 国产一区玩具在线观看| 国产精品日韩久久久久| 狠狠躁18三区二区一区| 美女999久久久精品视频| 精品视频—区二区三区免费| 性欧美亚洲xxxx乳在线观看| 国产视频观看一区| 久久久久久久香蕉网| 亚洲wwwav| 欧美成人亚洲成人| 高清在线视频日韩欧美| 久久久最新网址| 国产性色av一区二区| 国产视频精品久久久| 欧美一区视频在线| 亚洲偷熟乱区亚洲香蕉av| 精品国产老师黑色丝袜高跟鞋| 91精品国产综合久久香蕉的用户体验| 久久久久久久久久久人体| 伊人久久大香线蕉av一区二区| 57pao成人永久免费视频| 久久精品久久精品亚洲人| 色偷偷噜噜噜亚洲男人| 日韩av快播网址| 久久精品99久久久久久久久| 揄拍成人国产精品视频| 日韩精品中文在线观看| 欧美色另类天堂2015| 亚洲一区二区久久久久久久| 日韩欧美中文在线| 日本午夜精品理论片a级appf发布| 一区二区日韩精品| 国产精品一区二区在线| 午夜剧场成人观在线视频免费观看| 久久久国产精品免费| 欧美激情亚洲自拍| 97久久精品人人澡人人爽缅北|