`

SpringMVC 两种上传文件方法

 
阅读更多
参考:http://blog.csdn.net/yyywyr/article/details/44571353
http://blog.csdn.net/a1314517love/article/details/24183273

  • 第一步:配置spring

<!-- 上传使用的多部分文件配置 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="UTF-8"/>
		<!--1024*1024*10000即1000M-->
		<property name="maxUploadSize" value="200000" />
		<property name="maxInMemorySize" value="40960" />
		<!--resolveLazily属性启用是为了推迟文件解析,以便在UploadAction 中捕获文件大小异常 -->
		<property name="resolveLazily" value="true"/> 
	</bean>

  • 第二步:在上传action中自己捕获异常

@RequestMapping  
    public void execute(  
            @RequestParam(required = false) MultipartFile file,  
            @RequestParam(value = "file_info_id", required = false) Integer fileInfoId,  
            ModelMap model, HttpServletRequest request) throws Exception {  
              
        if (file == null || file.isEmpty()) {  
            return;  
        }  
        byte[] bytes = file.getBytes();  
            ……………………  
………………  
}  
  @ExceptionHandler(Exception.class)         
    public ModelAndView handleException(Exception ex,HttpServletRequest request) {       
         Map<Object, Object> model = new HashMap<Object, Object>();  
         if (ex instanceof MaxUploadSizeExceededException){  
                        model.put("errors", "文件应不大于 "+  
                       getFileKB(((MaxUploadSizeExceededException)ex).getMaxUploadSize()));  
                     } else{  
                        model.put("errors", "不知错误: " + ex.getMessage());  
                    }  
         return new ModelAndView("/common/file/upload", (Map) model);  
                  
    }    
      
    private String getFileKB(long byteFile){  
        if(byteFile==0)  
           return "0KB";  
        long kb=1024;  
        return ""+byteFile/kb+"KB";  
    } 

  • 第三步:界面

<script type="text/javascript">  
$(function() {  
    $('#frmupload1').submit(function() {  
        if ($('#file1').val() == '') {  
            alert('请选择上传导入文件!');  
            $('#file1').focus();  
            return false;  
        }else{  
            if(!isvalidatefile($('#file1').val()))  
                  return false;  
                  
        }  
    });  
    $('#frmupload2').submit(function() {  
        if ($('#file2').val() == '') {  
            alert('请选择上传导入文件!');  
            $('#file2').focus();  
            return false;  
        }else{  
            if(!isvalidatefile($('#file2').val()))  
                  return false;  
                  
        }  
    });  
});  
  
function isvalidatefile(obj) {  
      
    var extend = obj.substring(obj.lastIndexOf(".") + 1);  
    //alert(extend);  
    if (extend == "") {  
    } else {  
        if (!(extend == "xls" )) {  
            alert("请上传后缀名为xls(Excel2003)或xlsx(Excel2007)的文件!");  
              
            return false;  
        }  
    }  
    return true;  
}  
<body>  
<h1>上传文件</h1>  
<form action="" method="post" enctype="multipart/form-data" onsubmit="return checkSubmit();">  
  
    <p>请选择文件:</p>  
      
    <p ${not empty errors ?"style='color : red;'":""}>${errors}</p>  
    <input type="file" name="file" id="file"/>&nbsp;<input type="submit" value="确定"/>  
</form>  
</body>  


  • 第四步:接收form表单普通的参数

其方法为:将HttpServletRequest  req强转成MultipartHttpServletRequest req后,通过 req.getParameter("id");获取

HttpServletRequest request;
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("file");
String id = multipartRequest.getParameter("id");
String fileName = file.getOriginalFilename();


参考:http://blog.csdn.net/z69183787/article/details/44152287

spring mvc文件上传(单个文件上传|多个文件上传)
http://www.cnblogs.com/dengfukui/p/6252798.html
分享到:
评论

相关推荐

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

    本文将详细讲解如何实现Spring MVC中的文件上传和下载,包括单一文件上传、多文件上传以及两种不同的文件下载方法。 一、单一文件上传 1. 添加依赖:在Spring MVC项目中,我们需要引入`commons-fileupload`和`...

    springmvc+ajax上传例子

    在IT行业中,SpringMVC和Ajax是两种广泛使用的技术,它们在构建现代Web应用程序时起着至关重要的作用。本教程将深入探讨如何结合SpringMVC和Ajax实现文件上传功能。 首先,SpringMVC是Spring框架的一部分,它是一个...

    springmvc ajax 文件上传

    这两种方法都是在Web应用中处理用户上传文件的常见方式,特别是当需要在后台处理文件且不刷新整个页面时,AJAX上传就显得尤为重要。 首先,我们来看**Spring MVC**。Spring MVC是Spring框架的一个模块,专门用于...

    webuploader+springMVC实现大文件上传.zip

    - JSP文件:包含两个页面,一个用于多文件上传,一个用于大文件分片上传。页面上会配置WebUploader的相关参数和事件监听。 - 配置文件:SpringMVC的配置文件需要设置允许接收大文件的上传限制,同时可能还需要配置...

    SpringMVC文件上传multpathfileJar包commons-fileupload-1.3.3

    - 首先,在Spring MVC的配置文件中,需要启用MultipartResolver,通常使用`CommonsMultipartResolver`,并配置其属性如临时文件路径、最大上传文件大小等。 - 然后,在HTML表单中,使用`enctype="multipart/form-...

    SpringMVC上传文件的两种方法

    SpringMVC上传文件的两种方法 SpringMVC是一个基于Java的web应用框架,提供了很多强大的功能来简化Web应用程序的开发。其中,文件上传是一个非常常见的需求,SpringMVC也提供了多种方式来实现文件上传。本文将详细...

    SpringMVC 文件上传下载

    本示例着重于SpringMVC中的文件上传和下载功能,这对于任何需要用户交互式交换文件的应用程序都是至关重要的。 文件上传是指允许用户从他们的设备选择文件并将其发送到服务器的过程。在SpringMVC中,这通常通过使用...

    Spring下的子框架SpringMVC实现多文件上传完整代码

    在 SpringMVC 中,实现多文件上传有两种常见方式: 1. **字节流方式**:传统的文件上传方式,通常涉及到读取文件内容为字节数组,然后进行上传操作。这种方式适用于较小的文件上传,但对于大型文件或多文件上传,其...

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

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

    使用springmvc 实现文件上传

    使用springmvc+spring 的框架 使用了apache.commons.fileupload、和springmvc的multipart.MultipartFile 两种技术实现了两种上传方式。

    WebUploader+SpringMVC实现文件上传功能

    WebUploader是百度团队开发的一款强大的文件上传组件,它支持HTML5和Flash两种技术,确保在各种浏览器环境下都能正常工作,包括兼容IE6+、iOS 6+以及Android 4+。该组件的一大特色是它的分片并发上传功能,能够极大...

    springMVC 文件上传需要的依赖包

    - 文件存储策略:支持临时文件存储和内存中存储两种方式,可根据文件大小和服务器配置进行选择。 - 处理文件大小限制:可以设置最大上传文件大小,防止大文件导致服务器资源耗尽。 - 错误处理:提供API来处理解析...

    spring mvc ajax异步文件的上传和普通文件上传

    在提供的压缩包文件"springmvc_14_crud"中,可能包含了一个完整的Spring MVC项目,包括了上述两种文件上传的实现。通过查看源码,我们可以更深入地了解如何在实际项目中集成和优化这些功能。 总结起来,Spring MVC...

    springmvc-demo09-文件上传下载.zip

    文件上传通常涉及到`MultipartFile`接口,这是Spring MVC提供的专门用于处理上传文件的类。在控制器层,我们需要创建一个方法,该方法的参数类型为`MultipartFile`,用于接收上传的文件。例如: ```java @...

    基于easyui+springmvc实现的文件管理系统

    2. **文件存储**:文件存储通常有两种方式:本地存储和云存储。本地存储简单快捷,但容量有限;云存储如阿里云OSS或AWS S3,提供大容量、高可用的存储空间,适合大数据量的文件系统。 3. **文件上传与下载**:使用...

    上传图片springMVC和ajax

    该方法通常会接受MultipartFile类型的参数,这是SpringMVC为处理上传文件提供的特殊类型。 2. **处理请求**: 当用户提交包含图片的表单时,Ajax会将文件作为FormData对象发送到Controller的URL。Controller接收到...

    SpringMVC文件上传相关jar包

    通常,我们需要在`&lt;mvc:annotation-driven&gt;`标签内添加`&lt;mvc:multipart-config&gt;`子标签,配置最大上传文件大小、临时存储路径等参数。 4. **临时文件处理**:在上传过程中,文件会被暂时存储在服务器的一个特定目录...

    springmvc和strut2实现上传下载示例

    2. **控制器方法**:创建一个控制器方法,接收`MultipartFile`参数,这个参数可以用来处理上传的文件。例如: ```java @RequestMapping(value = "/upload", method = RequestMethod.POST) public String ...

    Spring MVC文件上传大小和类型限制以及超大文件上传bug问题

    处理这个异常有两种主要方式。第一种是在Spring MVC配置文件中使用`SimpleMappingExceptionResolver`。这个异常解析器可以捕获并映射异常到特定的错误页面。例如: ```xml &lt;!-- 遇到...

    SpringMVC实现文件上传和下载功能

    SpringMVC是一种基于Java的Web应用程序框架,它提供了许多实用的功能,其中之一就是文件上传和下载功能。文件上传和下载功能是许多Web应用程序的基本需求,SpringMVC提供了一些工具和类来实现这些功能。 在...

Global site tag (gtag.js) - Google Analytics