`

spring mvc upload file

阅读更多

spring 封装了文件上传功能,使用spring mvc上传文件需要完成下面的工作:

1. 配置MultipartFileResolver

    在spring容器中注入MultipartFileResolver bean

   

 <bean id="commonsMultipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"/>
        <property name="maxInMemorySize" value="1073741824"/>
        <property name="maxUploadSize" value="50000000"/>
 </bean>

 

 

应用该功能需要apche的commons-fileupload和commons-io依赖,因为它们提供底层api,spring是对它们的一种封装

 

2. jsp文件创建表单

 

 

<form id="upload_form" action="/upload/example" method="post" enctype="multipart/form-data" onsubmit="return sub();" >
    <textarea rows="4" name="description" class="form-control  ng-pristine ng-valid ng-touched" placeholder="填写something"></textarea>
    <span class="gray weight">上传歌曲:</span><input id="target_file" name="file" type="file" />
    <button id="submit_btn" class="inputBtn">确定上传</button>
</form>
<script type="text/javascript">
function sub() {//简单的验证
   var file = $("#week_song_file").val();
   if(file==null||file.indexOf(".mp3")==-1){
   alert("请选择mp3格式的文件");
   return false;
                   }
   return true;
          }                                        
</script>

 

 

文件的提交有其它方式,比如ajax或jquery的上传插件,这里只做示例

 

3. controller中文件上传处理

 

 

 

@Controller
public class UploadController {
    @Autowired
    MultipartResolver resolver;
   @RequestMapping(value="/member/{uid}/weeksong/upload",method = RequestMethod.POST)
   @ResponseBody
   public String upload(@PathVariable long uid,HttpSession session,HttpServletRequest request){
        String result="ok";
        if(resolver.isMultipart(request)){
                MultipartHttpServletRequest multipartRequest=resolver.resolveMultipart(request);
                MultipartFile file=multipartRequest.getFile("file");//此处文件名字‘file’要于表单中提交的一致
                String description=multipartRequest.getParameter("description");
                //处理file....
            }
        }else{
            result="type error";
        }
        return result;
    }
}

 

接收文件的方法中有另一种方式: 

@RequestMapping(value="/member/{uid}/weeksong/upload",method = RequestMethod.POST)
@ResponseBody
public String upload(@PathVariable long uid,HttpSession session,@RequestParam("file")MultipartFile file,@RequestParam String description){
//handle file...
}

直接将上传的文件变量的形式封装到一个MultipartFile类型的对象file中,这时出现错误:java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured? 具体原因还要研究一下

 

 

 

分享到:
评论

相关推荐

    Spring MVC Multiple File Upload example

    在本文中,我们将深入探讨如何使用Spring MVC框架实现多文件上传功能。Spring MVC是Java Web开发中的一个强大组件,它提供了处理HTTP请求、包括文件上传在内的多种功能。在这个例子中,我们将关注如何处理用户通过...

    Spring MVC upload/download file(注释和非注释实现)

    在IT行业中,Spring MVC是一个广泛使用的Java框架,用于构建Web应用程序。它提供了处理HTTP请求、渲染视图以及处理用户输入的强大功能。在这个场景下,我们关注的是Spring MVC如何实现文件的上传与下载功能,这对于...

    spring MVC uploadify

    Spring MVC 是一个强大的Java web开发框架,用于构建可维护、高性能和灵活的Web应用程序。在Spring MVC中,处理文件上传是一项常见的任务,尤其在需要用户交互上传图片或文档的场景下。`multipartResolver`是Spring ...

    spring mvc文件上传实现进度条

    这个场景通常涉及到前端的JavaScript或jQuery库(如jQuery File Upload)与后端的Spring MVC控制器之间的交互,以及可能的多线程处理来跟踪文件上传的进度。接下来,我们将深入探讨如何在Spring MVC中实现这一功能。...

    spring mvc上传文件

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

    spring mvc 附件上传代码

    本文档将详细介绍如何在Spring MVC环境中配置并实现文件上传功能,包括必要的`web.xml`配置、Spring配置文件(如`upload-servlet.xml`)设置及控制器的具体编写。 #### 二、`web.xml`配置详解 `web.xml`文件用于...

    spring mvc spring uploadfiles 插件 实现多附件和存文本同时上传解决代码(实战项目)

    根据提供的文件信息,本文将详细解析如何在Spring MVC框架中实现多附件与文本信息的同时上传功能。这在很多实际应用场景中都非常有用,例如用户在提交表单时常常需要附带图片或其他类型的文件。 ### 一、Spring MVC...

    Spring MVC实现文件的上传下载

    在Spring MVC中,我们可以使用`@RequestParam("file") MultipartFile file`注解来接收上传的文件,其中`MultipartFile`是Spring提供的一个接口,用于处理临时的文件上传。 接下来,我们需要配置一个`...

    Spring MVC 文件上传下载

    Spring MVC 是一个强大的 web 应用开发框架,它提供了丰富的功能来处理用户请求,包括文件上传和下载。本文将深入探讨如何使用 Spring MVC 实现文件的上传与下载。 首先,要实现文件上传,我们需要引入一些必要的...

    ajaxupload在spring mvc4.2中实现简单文件上传

    在Spring MVC 4.2框架中实现AjaxUpload(异步文件上传)是一个常见的需求,它允许用户在不刷新整个页面的情况下进行文件上传,提供更好的用户体验。以下是对这一主题的详细阐述: 1. **AjaxUpload简介**: Ajax...

    spring mvc 上传文件显示进度

    在Spring MVC中实现文件上传并显示进度是一项常见的需求,特别是在用户需要等待较长时间的大型文件上传时。这个功能可以通过监听文件上传的进度并在前端实时更新来提升用户体验。下面将详细介绍如何利用Spring MVC...

    Spring mvc小程序

    11. **Multipart File Upload**:如果UserTest涉及到文件上传,Spring MVC通过`MultipartFile`接口提供支持,可以方便地处理HTTP请求中的多部分数据。 12. **RESTful API设计**:Spring MVC也支持RESTful风格的API...

    spring mvc上传下载

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。在这个主题中,我们将深入探讨如何使用Spring MVC实现文件的上传和下载功能,以及如何利用Spring的注解和视图解析来简化这一过程。 ...

    Spring MVC文件上传下载

    Spring MVC 是一个强大的Java web开发框架,用于构建可维护、模块化且松散耦合的Web应用程序。在Spring MVC中,文件的上传和下载是常见的功能需求,这涉及到客户端与服务器之间的数据传输。本篇文章将深入探讨Spring...

    upload spring mvc

    在Spring MVC框架中,上传功能是开发者经常遇到的需求,它允许用户通过Web界面提交文件到服务器。本教程将深入探讨如何在Spring MVC中实现文件上传功能。 ### 1. Spring MVC上传原理 Spring MVC提供了`...

    Spring MVC文件上传

    在Spring MVC框架中,文件上传是一项常见的功能,它允许用户通过Web界面上传本地文件到服务器。这篇文章将深入探讨如何在Spring MVC中实现文件上传,并基于提供的链接和文件名称列表进行详细解析。 首先,理解文件...

    spring mvc 自學筆記

    ### Spring MVC 数据跳转 在 Spring MVC 中,数据跳转主要指的是控制器(Controller)处理完请求后,将数据转发到视图(View)进行展示的过程。这里的“跳转”实际上是指请求处理后的视图重定向或转发。 #### 转发与...

    spring第11章--ajax,上传下载,拦截器.rar_spring mvc_spring 下载_spring 使用ajax

    在Spring MVC框架中,Ajax(Asynchronous JavaScript and XML)是一种常用的技术,用于在不刷新整个页面的情况下与服务器进行异步通信。本章将探讨如何在Spring MVC中集成和使用Ajax,以及涉及的上传和下载功能,...

Global site tag (gtag.js) - Google Analytics