`

SpringMVC:上传与下载

阅读更多
参照了网上相关代码
注意事项:
1 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>  
分享到:
评论
5 楼 2047699523 2015-05-19  
spring mvc demo教程源代码下载:http://www.zuidaima.com/share/kspringmvc-p1-s1.htm
4 楼 yuechen323 2015-03-15  
代码写了2次,而且还这么啰嗦
3 楼 lemoCC 2015-02-03  
  • [list]
  • [*][list]
  • [*][*][list]
  • [*][*][*]
  • [*][*]
  • [*][/list]
  • [/list]
  • [/list]
    2 楼 lemoCC 2015-02-03  
    [flash=200,200][flash=200,200][url][img][list]
    [*]
    引用
    [/list][/img][/url][/flash][/flash]
             
    1 楼 tonyyouwei 2013-11-30  
    写的真好!

    相关推荐

      IDEA SpringMVC 实现文件的上传下载

      在SpringMVC框架中,实现文件的上传与下载是常见的需求。IntelliJ IDEA作为流行的Java开发集成环境,为开发者提供了高效便捷的开发体验。在这个项目中,我们使用IDEA来构建一个基于SpringMVC的系统,实现了文件的...

      基于springmvc实现文件上传下载 基于AOP的日志功能

      基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于...

      springmvc文件上传与下载jar和案例

      在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。下面将详细阐述Spring MVC中实现文件上传和下载的关键知识点,并提供相关的jar包和案例资源。 一、文件上传 1. **依赖引入**:...

      springMVC 与文件 上传 下载 实例

      在Spring MVC框架中,文件上传和下载是常见的需求,尤其在构建Web应用程序时。下面将详细阐述如何使用Spring MVC实现这些功能,以及如何添加文件压缩的特性。 首先,我们需要了解Spring MVC中的MultipartFile接口,...

      SpringMVC文件上传与下载 源码

      在SpringMVC框架中,文件上传与下载是常见的功能需求,尤其在开发Web应用时,用户可能需要上传图片、文档等文件,或者从服务器下载资源。本教程将深入讲解SpringMVC如何处理文件上传和下载操作,并通过源码分析来...

      springMVC的上传与下载

      在这个主题“springMVC的上传与下载”中,我们将深入探讨如何在 Spring MVC 中实现文件上传和下载功能。 **文件上传** 1. **配置 Spring MVC**: 首先,你需要在 `web.xml` 文件中配置 DispatcherServlet 和 Spring...

      SpringMVC demo 完整源码实例下载.zip

      SpringMVC提供MultipartFile接口处理文件上传,而文件下载则可以通过StreamingResponseBody或者直接返回文件路径实现。这些功能的实现涉及了流处理和响应头设置,确保了文件传输的正确性和效率。 异常处理在Web应用...

      SpringMVC文件上传与下载的实现

      SpringMVC文件上传与下载的实现,实际开发过程中由于使用的Spring版本比较低的,所以一些最新的注解以及方法不能使用,然后使用了一些替代的方法,另外在项目中使用到的路径是从内存中读取的并不是项目路径,具体的...

      SSM整合包 spring+springMVC+Mybatis+bootstarp以及文件上传与下载

      在这个整合包中,我们还将探讨如何结合Bootstrap来实现前端界面的快速开发,并学习文件上传与下载的功能。 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等...

      SpringMVC上传下载异常处理

      本文档主要介绍了SpringMVC的ModelAndView机制,使用SpringMVC实现文件上传,下载以及全局异常处理机制

      SpringMVC文件上传和下载的工具类(完整项目)

      本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中。开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成类。

      springMVC文件上传与下载的相关jar包

      在Spring MVC框架中,文件上传和下载是常见的功能需求,涉及到服务器与客户端的数据交互。本压缩包提供的资源包括了实现这些功能所必需的关键组件。以下是关于这些组件的详细解释: 1. **Spring MVC**:Spring MVC...

      springMVC 上传下载例子

      在`spring-servlet.xml`中,你需要声明`&lt;mvc:annotation-driven&gt;`来启用对注解驱动的控制器的支持,这将自动配置处理上传和下载所需的组件。 2. **上传文件** - **Controller**:在控制器类中,你可以使用`@...

      springmvc带进度条上传源码

      在Spring MVC框架中实现文件上传并提供进度条功能是一项实用且复杂的任务,涉及到前端与后端的交互以及数据传输过程的监控。以下是对这个主题的详细解析。 首先,我们需要理解Spring MVC的基本工作原理。Spring MVC...

      SpringMVC文件上传与下载

      在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这篇博客文章详细介绍了如何在Spring MVC项目中实现这两个操作。以下是对这些知识点的详细说明: 1. **Spring MVC简介** Spring...

      SpringMVC demo 完整源码实例下载

      SpringMVC提供了便捷的文件上传支持,通过`@RequestParam("file") MultipartFile file`注解接收文件,并且可以处理文件的保存和下载操作。这涉及到文件流的读写以及文件存储策略。 异常处理是任何应用程序都需要...

      JavaEE企业级开发-----SpringMVC实现 文件的上传下载实验报告.docx

      本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心在于HTML表单(form)的正确配置。在创建用于上传文件的表单时,需要指定`enctype`属性为`multipart/form-data`。这是因为...

      SpringMVC文件的上传与下载(包括单一文件与多文件上传,两种下载方式)

      在Spring MVC框架中,文件的上传与下载是常见的功能需求,尤其在Web应用中不可或缺。本文将详细讲解如何实现Spring MVC中的文件上传和下载,包括单一文件上传、多文件上传以及两种不同的文件下载方法。 一、单一...

      SpringMVC 实现文件上传下载、国际化等

      本教程将深入讲解如何利用SpringMVC实现文件上传和下载功能,以及如何实现应用的国际化。下面我们将详细探讨这些知识点。 **一、SpringMVC文件上传** 在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver...

      springMVC上传下载样例

      文件上传是项目开发中最常见的功能。为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器。 一旦设置...

    Global site tag (gtag.js) - Google Analytics