springMVC上传与下载

springMVC上传与下载

首先,springmvc.xml必须配置:

Java代码

1.      <bean id="multipartResolver"

2.              class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8"/>

<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8"/>

2 WEB-INF/lib下必加入:commons-fileupload.jar与commons-io-1.4.jar二个文件 
3 表单属性为: enctype="multipart/form-data" 
工程项目图片如下:

具体代码如下: 
FileUploadBean.java

Java代码

1.      public class FileUploadBean {

2.          private byte[] file;

3.

4.          public void setFile(byte[] file) {

5.              this.file = file;

6.          }

7.

8.          public byte[] getFile() {

9.              return file;

10.       }

11.   }

public class FileUploadBean {

private byte[] file;

public void setFile(byte[] file) {

this.file = file;

}

public byte[] getFile() {

return file;

}

}

Java代码

1.      package net.liuzd.web;

2.

3.      import java.io.BufferedInputStream;

4.      import java.io.BufferedOutputStream;

5.      import java.io.File;

6.      import java.io.FileInputStream;

7.      import java.io.IOException;

8.      import java.net.BindException;

9.      import java.util.ArrayList;

10.

11.   import java.util.List;

12.   import java.util.Map;

13.

14.   import javax.servlet.http.HttpServletRequest;

15.   import javax.servlet.http.HttpServletResponse;

16.

17.   import org.springframework.stereotype.Controller;

18.   import org.springframework.util.FileCopyUtils;

19.   import org.springframework.web.bind.annotation.PathVariable;

20.   import org.springframework.web.bind.annotation.RequestMapping;

21.   import org.springframework.web.bind.annotation.RequestMethod;

22.   import org.springframework.web.bind.annotation.RequestParam;

23.   import org.springframework.web.multipart.MultipartFile;

24.   import org.springframework.web.multipart.MultipartHttpServletRequest;

25.   import org.springframework.web.multipart.commons.CommonsMultipartFile;

26.   import org.springframework.web.servlet.ModelAndView;

27.

28.   /**

29.    * Title: Description: Copyright: Copyright (c) 2011

30.    * Company:http://liuzidong.iteye.com/;Makedate:2011-5-27 下午01:52:17

31.    *

32.    * @author liuzidong

33.    * @version 1.0

34.    * @since 1.0

35.    *

36.    */

37.   @Controller

38.   public class FileUploadController {

39.

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

41.       public ModelAndView onSubmit(HttpServletRequest request,

42.               HttpServletResponse response, BindException errors)

43.               throws Exception {

44.

45.           MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

46.           CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest

47.                   .getFile("file");

48.

49.           String name = multipartRequest.getParameter("name");

50.           System.out.println("name: " + name);

51.           // 获得文件名:

52.           String realFileName = file.getOriginalFilename();

53.           System.out.println("获得文件名:" + realFileName);

54.           // 获取路径

55.           String ctxPath = request.getSession().getServletContext().getRealPath(

56.                   "/")

57.                   + "images/";

58.           // 创建文件

59.           File dirPath = new File(ctxPath);

60.           if (!dirPath.exists()) {

61.               dirPath.mkdir();

62.           }

63.           File uploadFile = new File(ctxPath + realFileName);

64.           FileCopyUtils.copy(file.getBytes(), uploadFile);

65.           request.setAttribute("files", loadFiles(request));

66.           return new ModelAndView("success");

67.       }

68.

69.       @RequestMapping(value = "/upload2", method = RequestMethod.POST)

70.       public ModelAndView onSubmit2(HttpServletRequest request,

71.               HttpServletResponse response, BindException errors)

72.               throws Exception {

73.

74.           // 转型为MultipartHttpRequest

75.           MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

76.           // 根据前台的name名称得到上传的文件

77.           MultipartFile file = multipartRequest.getFile("file");

78.           // 获得文件名:

79.           String realFileName = file.getOriginalFilename();

80.           // 获取路径

81.           String ctxPath = request.getSession().getServletContext().getRealPath(

82.                   "/")

83.                   + "\\" + "images\\";

84.           // 创建文件

85.           File dirPath = new File(ctxPath);

86.           if (!dirPath.exists()) {

87.               dirPath.mkdir();

88.           }

89.           File uploadFile = new File(ctxPath + realFileName);

90.           FileCopyUtils.copy(file.getBytes(), uploadFile);

91.           request.setAttribute("files", loadFiles(request));

92.           return new ModelAndView("success");

93.       }

94.

95.       @RequestMapping(value = "/upload3", method = RequestMethod.POST)

96.       public String upload(@RequestParam("file")

97.       MultipartFile image, HttpServletRequest request) throws IOException {

98.

99.           String ctxPath = request.getSession().getServletContext().getRealPath(

100.                "/")

101.                + "\\" + "images\\";

102.        System.out.println("路径:" + ctxPath);

103.        File file = new File(ctxPath + "/" + image.getOriginalFilename());

104.        // FileCopyUtils.copy(image.getBytes(),new

105.        // File(ctxPath+"/"+image.getOriginalFilename()));

106.        try {

107.            image.transferTo(file); // 保存上传的文件

108.        } catch (IllegalStateException e) {

109.            e.printStackTrace();

110.        } catch (IOException e) {

111.            e.printStackTrace();

112.        }

113.        request.setAttribute("files", loadFiles(request));

114.        return "success";

115.    }

116.

117.    // 多文件上传

118.    @RequestMapping(value = "/upload4", method = RequestMethod.POST)

119.    public ModelAndView fileUpload(HttpServletRequest request,

120.            HttpServletResponse response, BindException errors)

121.            throws Exception {

122.

123.        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

124.        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();

125.        String ctxPath = request.getSession().getServletContext().getRealPath(

126.                "/")

127.                + "\\" + "images\\";

128.

129.        File file = new File(ctxPath);

130.        if (!file.exists()) {

131.            file.mkdir();

132.        }

133.        String fileName = null;

134.        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {

135.            // 上传文件名

136.            // System.out.println("key: " + entity.getKey());

137.            MultipartFile mf = entity.getValue();

138.            fileName = mf.getOriginalFilename();

139.            File uploadFile = new File(ctxPath + fileName);

140.            FileCopyUtils.copy(mf.getBytes(), uploadFile);

141.        }

142.        request.setAttribute("files", loadFiles(request));

143.        return new ModelAndView("success");

144.    }

145.

146.    // @ModelAttribute("files")//此属性用于初始类时调用,但上传文件后不能时时反应上传文件个数,不适合动态数据

147.    public List<String> loadFiles(HttpServletRequest request) {

148.        List<String> files = new ArrayList<String>();

149.        String ctxPath = request.getSession().getServletContext().getRealPath(

150.                "/")

151.                + "\\" + "images\\";

152.        File file = new File(ctxPath);

153.        if (file.exists()) {

154.            File[] fs = file.listFiles();

155.            String fname = null;

156.            for (File f : fs) {

157.                fname = f.getName();

158.                if (f.isFile()) {

159.                    files.add(fname);

160.                }

161.            }

162.        }

163.        return files;

164.    }

165.

166.    @RequestMapping("/download/{fileName}")

167.    public ModelAndView download(@PathVariable("fileName")

168.    String fileName, HttpServletRequest request, HttpServletResponse response)

169.            throws Exception {

170.

171.        response.setContentType("text/html;charset=utf-8");

172.        request.setCharacterEncoding("UTF-8");

173.        java.io.BufferedInputStream bis = null;

174.        java.io.BufferedOutputStream bos = null;

175.

176.        String ctxPath = request.getSession().getServletContext().getRealPath(

177.                "/")

178.                + "\\" + "images\\";

179.        String downLoadPath = ctxPath + fileName;

180.        System.out.println(downLoadPath);

181.        try {

182.            long fileLength = new File(downLoadPath).length();

183.            response.setContentType("application/x-msdownload;");

184.            response.setHeader("Content-disposition", "attachment; filename="

185.                    + new String(fileName.getBytes("utf-8"), "ISO8859-1"));

186.            response.setHeader("Content-Length", String.valueOf(fileLength));

187.            bis = new BufferedInputStream(new FileInputStream(downLoadPath));

188.            bos = new BufferedOutputStream(response.getOutputStream());

189.            byte[] buff = new byte[2048];

190.            int bytesRead;

191.            while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {

192.                bos.write(buff, 0, bytesRead);

193.            }

194.        } catch (Exception e) {

195.            e.printStackTrace();

196.        } finally {

197.            if (bis != null)

198.                bis.close();

199.            if (bos != null)

200.                bos.close();

201.        }

202.        return null;

203.    }

204.}

package net.liuzd.web;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.net.BindException;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.util.FileCopyUtils;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

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.servlet.ModelAndView;

/**

* Title: Description: Copyright: Copyright (c) 2011

* Company:http://liuzidong.iteye.com/ Makedate:2011-5-27 下午01:52:17

*

* @author liuzidong

* @version 1.0

* @since 1.0

*

*/

@Controller

public class FileUploadController {

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

public ModelAndView onSubmit(HttpServletRequest request,

HttpServletResponse response, BindException errors)

throws Exception {

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest

.getFile("file");

String name = multipartRequest.getParameter("name");

System.out.println("name: " + name);

// 获得文件名:

String realFileName = file.getOriginalFilename();

System.out.println("获得文件名:" + realFileName);

// 获取路径

String ctxPath = request.getSession().getServletContext().getRealPath(

"/")

+ "images/";

// 创建文件

File dirPath = new File(ctxPath);

if (!dirPath.exists()) {

dirPath.mkdir();

}

File uploadFile = new File(ctxPath + realFileName);

FileCopyUtils.copy(file.getBytes(), uploadFile);

request.setAttribute("files", loadFiles(request));

return new ModelAndView("success");

}

@RequestMapping(value = "/upload2", method = RequestMethod.POST)

public ModelAndView onSubmit2(HttpServletRequest request,

HttpServletResponse response, BindException errors)

throws Exception {

// 转型为MultipartHttpRequest

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

// 根据前台的name名称得到上传的文件

MultipartFile file = multipartRequest.getFile("file");

// 获得文件名:

String realFileName = file.getOriginalFilename();

// 获取路径

String ctxPath = request.getSession().getServletContext().getRealPath(

"/")

+ "\\" + "images\\";

// 创建文件

File dirPath = new File(ctxPath);

if (!dirPath.exists()) {

dirPath.mkdir();

}

File uploadFile = new File(ctxPath + realFileName);

FileCopyUtils.copy(file.getBytes(), uploadFile);

request.setAttribute("files", loadFiles(request));

return new ModelAndView("success");

}

@RequestMapping(value = "/upload3", method = RequestMethod.POST)

public String upload(@RequestParam("file")

MultipartFile image, HttpServletRequest request) throws IOException {

String ctxPath = request.getSession().getServletContext().getRealPath(

"/")

+ "\\" + "images\\";

System.out.println("路径:" + ctxPath);

File file = new File(ctxPath + "/" + image.getOriginalFilename());

// FileCopyUtils.copy(image.getBytes(),new

// File(ctxPath+"/"+image.getOriginalFilename()));

try {

image.transferTo(file); // 保存上传的文件

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

request.setAttribute("files", loadFiles(request));

return "success";

}

// 多文件上传

@RequestMapping(value = "/upload4", method = RequestMethod.POST)

public ModelAndView fileUpload(HttpServletRequest request,

HttpServletResponse response, BindException errors)

throws Exception {

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();

String ctxPath = request.getSession().getServletContext().getRealPath(

"/")

+ "\\" + "images\\";

File file = new File(ctxPath);

if (!file.exists()) {

file.mkdir();

}

String fileName = null;

for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {

// 上传文件名

// System.out.println("key: " + entity.getKey());

MultipartFile mf = entity.getValue();

fileName = mf.getOriginalFilename();

File uploadFile = new File(ctxPath + fileName);

FileCopyUtils.copy(mf.getBytes(), uploadFile);

}

request.setAttribute("files", loadFiles(request));

return new ModelAndView("success");

}

// @ModelAttribute("files")//此属性用于初始类时调用,但上传文件后不能时时反应上传文件个数,不适合动态数据

public List<String> loadFiles(HttpServletRequest request) {

List<String> files = new ArrayList<String>();

String ctxPath = request.getSession().getServletContext().getRealPath(

"/")

+ "\\" + "images\\";

File file = new File(ctxPath);

if (file.exists()) {

File[] fs = file.listFiles();

String fname = null;

for (File f : fs) {

fname = f.getName();

if (f.isFile()) {

files.add(fname);

}

}

}

return files;

}

@RequestMapping("/download/{fileName}")

public ModelAndView download(@PathVariable("fileName")

String fileName, HttpServletRequest request, HttpServletResponse response)

throws Exception {

response.setContentType("text/html;charset=utf-8");

request.setCharacterEncoding("UTF-8");

java.io.BufferedInputStream bis = null;

java.io.BufferedOutputStream bos = null;

String ctxPath = request.getSession().getServletContext().getRealPath(

"/")

+ "\\" + "images\\";

String downLoadPath = ctxPath + fileName;

System.out.println(downLoadPath);

try {

long fileLength = new File(downLoadPath).length();

response.setContentType("application/x-msdownload;");

response.setHeader("Content-disposition", "attachment; filename="

+ new String(fileName.getBytes("utf-8"), "ISO8859-1"));

response.setHeader("Content-Length", String.valueOf(fileLength));

bis = new BufferedInputStream(new FileInputStream(downLoadPath));

bos = new BufferedOutputStream(response.getOutputStream());

byte[] buff = new byte[2048];

int bytesRead;

while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {

bos.write(buff, 0, bytesRead);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (bis != null)

bis.close();

if (bos != null)

bos.close();

}

return null;

}

}

spring.xml

Java代码

1.      <?xml version="1.0" encoding="UTF-8" ?>

2.      <beans xmlns="http://www.springframework.org/schema/beans"

3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

4.          xmlns:p="http://www.springframework.org/schema/p"

5.          xmlns:context="http://www.springframework.org/schema/context"

6.          xsi:schemaLocation="

7.              http://www.springframework.org/schema/beans

8.              http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

9.              http://www.springframework.org/schema/context

10.           http://www.springframework.org/schema/context/spring-context-3.0.xsd">

11.       <!--

12.           自动搜索@Controller标注的类

13.           用于指明系统从哪个路径下寻找controller,然后提前初始化这些对象。

14.       -->

15.       <context:component-scan base-package="net.liuzd.web" />

16.

17.       <!--  ③:对模型视图名称的解析,即在模型视图名称添加前后缀 -->

18.       <bean

19.           class="org.springframework.web.servlet.view.InternalResourceViewResolver"

20.           p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

21.

22.

23.       <bean id="multipartResolver"

24.           class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8">

25.           <property name="maxUploadSize">

26.               <value>104857600</value>

27.           </property>

28.           <property name="maxInMemorySize">

29.               <value>4096</value>

30.           </property>

31.       </bean>

32.   </beans>

<?xml version="1.0" encoding="UTF-8" ?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!--

自动搜索@Controller标注的类

用于指明系统从哪个路径下寻找controller,然后提前初始化这些对象。

-->

<context:component-scan base-package="net.liuzd.web" />

<!--  ③:对模型视图名称的解析,即在模型视图名称添加前后缀 -->

<bean

class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8">

<property name="maxUploadSize">

<value>104857600</value>

</property>

<property name="maxInMemorySize">

<value>4096</value>

</property>

</bean>

</beans>

success.jsp

Java代码

1.      <%@ taglib  prefix="c" uri="/WEB-INF/c.tld"%>

2.      <h1>Upload Successful</h1>

3.          <c:forEach var="month" items="${files}">

4.              <li><a href="${pageContext.request.contextPath}/download/${month}.do">${month}</a></li>

5.          </c:forEach>

6.        <hr><br>

7.        <a href="${pageContext.request.contextPath}/index.jsp">返回</a>

<%@ taglib  prefix="c" uri="/WEB-INF/c.tld"%>

<h1>Upload Successful</h1>

<c:forEach var="month" items="${files}">

<li><a href="${pageContext.request.contextPath}/download/${month}.do">${month}</a></li>

</c:forEach>

<hr><br>

<a href="${pageContext.request.contextPath}/index.jsp">返回</a>

web.xml

Java代码

1.      <?xml version="1.0" encoding="UTF-8"?>

2.      <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

4.          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

5.          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

6.

7.          <context-param>

8.              <param-name>log4jConfigLocation</param-name>

9.              <param-value>/WEB-INF/classes/log4j.properties</param-value>

10.       </context-param>

11.

12.       <context-param>

13.           <param-name>log4jRefreshInterval</param-name>

14.           <param-value>60000</param-value>

15.       </context-param>

16.       <context-param>

17.           <param-name>log4jExposeWebAppRoot</param-name>

18.           <param-value>false</param-value>

19.       </context-param>

20.

21.       <listener>

22.           <listener-class>

23.               org.springframework.web.util.Log4jConfigListener

24.           </listener-class>

25.       </listener>

26.

27.       <filter>

28.           <filter-name>encodingFilter</filter-name>

29.           <filter-class>

30.               org.springframework.web.filter.CharacterEncodingFilter

31.           </filter-class>

32.           <init-param>

33.               <param-name>encoding</param-name>

34.               <param-value>UTF-8</param-value>

35.           </init-param>

36.           <init-param>

37.               <param-name>forceEncoding</param-name>

38.               <param-value>false</param-value>

39.           </init-param>

40.       </filter>

41.

42.       <filter-mapping>

43.           <filter-name>encodingFilter</filter-name>

44.           <url-pattern>*.do</url-pattern>

45.       </filter-mapping>

46.

47.       <filter-mapping>

48.           <filter-name>encodingFilter</filter-name>

49.           <url-pattern>*.jsp</url-pattern>

50.       </filter-mapping>

51.

52.       <servlet>

53.           <servlet-name>springmvc</servlet-name>

54.           <servlet-class>

55.               org.springframework.web.servlet.DispatcherServlet

56.           </servlet-class>

57.           <init-param>

58.               <param-name>contextConfigLocation</param-name>

59.               <param-value>classpath:springmvc.xml</param-value>

60.           </init-param>

61.           <load-on-startup>1</load-on-startup>

62.       </servlet>

63.

64.       <servlet-mapping>

65.           <servlet-name>springmvc</servlet-name>

66.           <url-pattern>*.do</url-pattern>

67.       </servlet-mapping>

68.       <welcome-file-list>

69.           <welcome-file>index.jsp</welcome-file>

70.       </welcome-file-list>

71.   </web-app>

时间: 2024-10-05 01:04:29

springMVC上传与下载的相关文章

myBatis + SpringMVC上传、下载文件

环境:maven+SpringMVC + Spring + MyBatis + MySql 本文主要说明如何使用input上传文件到服务器指定目录,或保存到数据库中:如何从数据库下载文件,和显示图像文件并实现缩放. 将文件存储在数据库中,一般是存文件的byte数组,对应的数据库数据类型为blob. 首先要创建数据库,此处使用MySql数据库. 注意:文中给出的代码多为节选重要片段,并不齐全. 1.  前期准备 使用maven创建一个springMVC+spring+mybatis+mysql的项

springMVC上传和下载附件

上传: 导入需要的jar包:Spring MVC类库 + 文件上传下载需要的JAR包,图中A处为文件上传下载需要的JAR包,其余为Spring MVC类库. 构建领域模层:model层和control层.view层 FileController: 1 package com.controller.system; 2 3 import java.io.FileOutputStream; 4 import java.io.OutputStream; 5 import java.text.Simple

转载:SpringMVC:上传与下载

1 springmvc.xml必须配置: Java代码   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8"/> Java代码   <bean id="multipartResolver" class=

angularjs + springmvc 上传和下载

jsp: <form ng-submit="uploadFile()" class="form-horizontal" enctype="multipart/form-data"> <input type="file" name="file" ng-model="document.fileInput" id="file" onchange="

Spring MVC 上传、下载、显示图片

通过这篇文章你可以了解到: 使用 SpringMVC 框架,上传图片,并将上传的图片保存到文件系统,并将图片路径持久化到数据库 在 JSP 页面上实现显示图片.下载图片 [TOC] 1. 准备工作 首先我们需要准备好开发环境,本文测试环境是 SSM(Spring 4.3.9 + SpringMVC 4.3.9 + MyBatis 3.4.4) ,数据库为 MySQL 5.5,数据库连接池 C3P0 0.9.5.2,构建包 Maven 3.5.0,Tomcat 8.5. 限于篇幅原因,关于 SSM

springmvc和servlet下的文件上传和下载(存文件目录和存数据库Blob两种方式)

项目中涉及了文件的上传和下载,以前在struts2下做过,今天又用springmvc做了一遍,发现springmvc封装的特别好,基本不用几行代码就完成了,下面把代码贴出来: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Uplo

springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Upload to

SpringMVC实现文件的上传和下载

前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:"用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流".我回复他说:"使用SpringMVC框架可以做到这一点,因为SpringMVC为文件的上传提供了直接的支持,但需要依赖Apache提供Commons FileUpload组件jar包."鉴于这个问题,我上网也百度了一下,网上很多都是介绍的使用IO流来实现文件的上传和下载,也有说到框架的,但介绍的并不是很完整,今天小钱将和大家介绍使用Spr

n文件的上传和下载,struts2和springmvc

首先,struts2的上传下载的配置 因为struts2是配置的上传的拦截器,很简单的步揍就可以上传, 首先是配置struts的action映射 <!-- 4. 修改上传文件的最大大小为30M --> <constant name="struts.multipart.maxSize" value="31457280"/> <!-- 注意: action 的名称不能用关键字"fileUpload" --> <