`
longxia1987
  • 浏览: 35281 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring 文件上传

    博客分类:
  • SSH
阅读更多

1、前期准备:

Spring文件上传操作,此文中是基于Commons FileUpload 的文件上传

maven 管理jar包,在pom.xml 添加commons-fileupload.jar的依赖:

 

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.2</version>
</dependency>


2、Spring配置文件修改(spring-servlet.xml):

 

由于Post一个包含文件上传的Form会以multipart/form-data请求发送给服务器,必须要通知DispatcherServlet如何处理MultipartRequest请求:

 

<!--文件上传-->
    <bean id="multipartResolver"  
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver" 
        p:defaultEncoding="utf-8" 
        p:maxUploadSize="1048576" />


这样一旦某个Request是一个MultipartRequest,它就会首先被MultipartResolver处理,然后再转发相应的Controller。

 

 

3、Controller的编写:

 

/**
	 * 文件上传控制。
	 * @author xialong<mailto:longxia1987@hotmail.com>
	 * @param request
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "/xlsUpload.json",method=RequestMethod.POST)
	public Map<String,Object> xlsUpload(HttpServletRequest request) {
		Map<String,Object> map = new HashMap<String,Object>(); 
		try {
			// 转型为MultipartHttpRequest:
			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
			// 获得文件:
			MultipartFile file = multipartRequest.getFile("file");
			// 获得文件名:
			String filename = file.getOriginalFilename();
			System.out.println(filename);
			
			
			// 获得输入流:
			
			InputStream input = file.getInputStream();
			map.put("code", "S");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			map.put("code", "E");
		}
		return map;
	}


4、页面的编写;

 

这地方用到了jquery.form 来进行异步的表单提交。请下载最新的jquer.form.js;

 

<head>
<script src="${pageContext.request.contextPath}/scripts/jquery/jquery-1.7.2.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/scripts/jquery/jquery.form.js" type="text/javascript"></script>

<script>
	$(document).ready(function(){
	   $('#xlsForm').ajaxForm({
	        url:'/file/xlsUpload.json',
	        type:'post',
	        dataType: 'json',
	        success:function (data){
	            if(data.code == "S"){
	            	alert("success!!!");
	            }else{
	            	alert("error ");
	            }
	        },
	        error:function(data){
	        	alert("未知异常");
	        }
	    });
	});
	
	
	function dosubmit(){
		var fileName = $('#fileInfo').val();
		alert(fileName);
		if('' == fileName) {
			alert("请选择上传文件");
			return;
		}
		var bingIndex = fileName.lastIndexOf('.');
		if(-1 == bingIndex) {
			alert("上传文件格式错误");
			return;
		}
		var suffix = fileName.substring(bingIndex + 1, fileName.length);
		if('xls' == suffix) {
			$('#xlsForm').submit();
		} else {
			alert("上传文件必须是已“xls”为后缀的Excel文件");
		}
	}
</script>
</head>
<body>
	<form id="xlsForm" method="post" enctype="multipart/form-data" >
		<input id="fileInfo" type="file" name="file" />
		<input id="xlsBut" type="button" value="upload" onclick="dosubmit()" />
	</form>
</body>



 

 

 

 

 

 

分享到:
评论

相关推荐

    struts+spring文件上传大小限制.rar

    本压缩包"struts+spring文件上传大小限制.rar"显然是针对在Struts和Spring整合环境下,如何处理文件上传时的大小限制问题。以下将详细介绍这两个框架在文件上传时的处理机制以及如何设置文件大小限制。 1. Struts...

    spring 文件上传实例

    在Spring框架中,文件上传是一项常见的功能,尤其在构建Web应用程序时。本实例将深入探讨如何在Java Spring中实现文件上传,并提供一个完整的配置示例。文件上传在现代Web应用中有着广泛的应用,如用户头像上传、...

    spring 文件上传jar包

    这个“spring 文件上传jar包”集合可能包含了处理文件上传所必需的各种依赖库,这些库能够帮助开发者轻松地在Spring MVC应用中实现文件上传的功能。下面我们将深入探讨Spring框架中的文件上传以及相关的知识点。 1....

    spring 文件上传.rar

    在Spring MVC框架中,文件上传是一项常见的功能,用于接收客户端发送的文件数据并保存到服务器。这个"spring 文件上传.rar"压缩包包含了实现这一功能所需的jar包和其他资源,下载后解压即可直接应用于你的项目中。 ...

    spring文件上传代码

    这里我们探讨的主题是“spring文件上传代码”,这涉及到Spring MVC如何处理文件上传请求,以及如何实现通用的Excel导入功能。我们将从Java微服务的视角出发,讨论相关依赖包和关键组件。 1. **文件上传**: - ...

    Java Spring文件上传,Java文件上传,Java通用文件上传

    在Java Spring框架中,文件上传是一项常见的功能,用于...以上就是关于Java Spring文件上传的基本介绍和实现步骤。在实际项目中,还需要根据具体需求进行优化和扩展,比如添加文件预览、文件类型检查、错误处理等功能。

    Spring文件上传和下载所需的jar包.rar

    在Spring框架中,文件上传和下载是常见的功能需求,尤其在构建Web应用程序时。为了实现这一功能,开发者通常会依赖一些外部库,如Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件处理能力...

    spring 文件上传

    例如MSDN 的资源上传,yahoo邮箱的附件上传,论坛的附件上传等,文件上传的方式有很多种,例如,使用Struts框架实现文件上传,在JSP中使用jspSmartUpload 组件实现文件上传和使用Spring框架实现文件上传等

    MYECLIPSE AXIS2 + SPRING 文件上传

    【标题】"MYECLIPSE AXIS2 + SPRING 文件上传"所涉及的知识点主要集中在三个核心领域:MYECLIPSE开发环境、AXIS2服务框架和SPRING框架,以及文件上传技术。MYECLIPSE是一款强大的集成开发环境(IDE),常用于Java...

    spring文件上传工具类

    封装springmvc上传单文件、多文件保存,保存文件时(文件夹路径不存在则创建),会改变文件名,使用起来非常方便。

    【springmvc+jquery.form.min.js+spring文件上传】

    在本项目"【springmvc+jquery.form.min.js+spring文件上传】"中,我们将探讨如何结合这两个技术实现异步文件上传。 首先,我们需要理解Spring MVC中的文件上传处理。Spring MVC提供了`@RequestParam("file") ...

    spring文件上传测试项目

    spring文件上传测试项目

    springcloud处理文件上传

    本话题主要探讨如何在Spring Cloud环境中处理文件上传,特别是在结合Feign和Zuul这两个组件时的实现方法。Feign是Spring Cloud的一个声明式HTTP客户端,用于简化服务间的调用;而Zuul则是作为API网关,提供路由、...

    基于Spring实现文件上传功能

    二、Spring文件上传机制 Spring框架提供了多种方式来实现文件上传,包括使用MultipartFile接口、使用Servlet API等。其中,MultipartFile接口是Spring框架提供的一个接口,用于处理文件上传的请求。该接口提供了...

    基于 Spring 实现文件上传的功能

    Spring文件上传的例子需要Java 17或以上版本,以及Gradle 7.5或更高版本,或者Maven 3.5及以上版本。这些工具是构建和管理Java项目的基础,确保了代码的编译和运行。 1. **配置Spring MVC** 要启用Spring MVC来...

    spring mvc上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与Ajax技术结合来实现文件上传的功能。Spring MVC是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,用于构建Web应用程序。Ajax(Asynchronous ...

    Spring文件的上传和下载

    以上就是基于Spring实现文件上传和下载的基本流程和技术点。在实际开发中,还需要考虑错误处理、文件大小限制、安全验证等细节问题。在"onegis"这个压缩包中,可能包含了一个实际的Spring Web项目示例,你可以通过...

    spring mvc文件上传实现进度条

    在Spring MVC框架中,文件上传是一项常见的功能,而实现文件上传进度条则能提供更好的用户体验。这个场景通常涉及到前端的JavaScript或jQuery库(如jQuery File Upload)与后端的Spring MVC控制器之间的交互,以及...

Global site tag (gtag.js) - Google Analytics