`
guoyiqi
  • 浏览: 1009482 次
社区版块
存档分类
最新评论

spring mvc 3 上传文件

 
阅读更多

 spring mvc 支持web应用程序的文件上传功能,是由spring内置的即插即用的MultipartResolver来实现的,这些解析器都定义在org.springframework.web.multipart包里。下面将使用CommonsMultipartResolver解析器来实现简单的文件上传功能。

    web应用程序上下文配置文件中(我的配置文件名为 /WEB-INF/config/app-config.xml)定义如下:

 <bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <!-- 以字节为单位的最大上传文件的大小 -->
  <property name="maxUploadSize" value="100000" />
 </bean>

    入两个依赖的jar包(spring官网可以下载到对应版本的常用依赖jar包):

    com.springsource.org.apache.commons.io-1.4.0.jar
    com.springsource.org.apache.commons.fileupload-1.2.0.jar

    建一个HTML表单:

 <body>
  <h1>
   Spring MVC 3.0 文件上传测试
  </h1>   //action里的html是后缀名,不是HTML文件,用于spring对请求进行拦截判断
  <form. method="post" action="upload.html" enctype="multipart/form-data">
   <input type="text" name="name" />
   <input type="file" name="file" />
   <input type="submit" />
  </form>
 </body>

    创建一个controller(控制器)来处理文件上传请求,FileUploadController.java:

@Controller //声明该类为控制器类
public class FileUploadController implements ServletContextAware{ //实现ServletContextAware接口,获取本地路径

 private ServletContext servletContext;

 public void setServletContext(ServletContext servletContext) { //实现接口中的setServletContext方法
  this.servletContext = servletContext;
 }

 @RequestMapping(value = "/upload", method = RequestMethod.POST) //将文件上传请求映射到该方法
 public String handleFormUpload(@RequestParam("name") String name, //设置请求参数的名称和类型
   @RequestParam("file") CommonsMultipartFile mFile) { //请求参数一定要与form中的参数名对应
  if (!mFile.isEmpty()) {
   String path = this.servletContext.getRealPath("/tmp/");  //获取本地存储路径
   File file = new File(path + new Date().getTime() + ".jpg"); //新建一个文件
   try {
    mFile.getFileItem().write(file); //将上传的文件写入新建的文件中
   } catch (Exception e) {
    e.printStackTrace();
   }
   
   return "redirect:uploadSuccess"; //返回成功视图
  }else {
   return "redirect:uploadFailure"; //返回失败视图
  }
 }
}

 

分享到:
评论

相关推荐

    spring mvc文件上传实现进度条

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

    spring mvc上传文件

    -- 设定最大上传文件大小,单位为MB --&gt; ``` 接下来,我们创建一个处理文件上传的Controller。在`@Controller`类中,我们可以定义一个`@RequestMapping`方法,该方法接收`MultipartFile`类型的参数,这表示上传...

    Spring MVC 文件上传下载 后端 - Java.zip

    在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这个压缩包文件"Spring MVC 文件上传下载 后端 - Java.zip"包含的文档可能详细阐述了如何在Java后端实现这些功能。以下是关于...

    Spring MVC文件上传下载

    1. **文件大小限制**:限制上传文件的大小,防止DoS攻击。 2. **文件类型检查**:验证上传文件的类型,防止恶意文件如`.jsp`、`.php`等被执行。 3. **文件名安全**:避免使用用户提供的文件名,防止路径遍历攻击。 4...

    spring mvc uploadify上传文件

    此外,需要确保上传文件的安全性,防止恶意文件上传,例如检查文件扩展名、执行文件内容扫描等。 ### 7. 性能优化 对于大量文件上传,可以考虑使用异步处理、分片上传、多线程等方式提高上传性能。同时,合理配置...

    spring mvc 上传文件显示进度

    考虑到安全性,应限制上传文件的大小和类型,防止DoS攻击。同时,对于大型文件,可以考虑分块上传,以减轻服务器压力。 通过以上步骤,我们可以在Spring MVC中实现文件上传并显示进度。这个功能可以显著提高用户...

    spring mvc 文件上传 代码完整版

    这一功能对于构建Web应用程序,尤其是那些需要用户交互并处理上传文件的系统来说至关重要。本项目提供了一个完整的、经过测试的文件上传解决方案,支持多文件上传,并确保其能够正常运行。 在Spring MVC中实现文件...

    Spring MVC文件上传

    该方法通常接收一个`MultipartFile`类型的参数,这是Spring MVC为处理上传文件提供的特殊类型。示例代码如下: ```java @Controller public class UploadController { @RequestMapping(value = "/upload", ...

    spring mvc 附件上传代码

    `定义了上传文件的保存路径。 - `protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object cmd, BindException errors)`方法用于处理提交的数据。 - `(FileUploadBean...

    精通Spring MVC 4

    本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...

    Spring MVC 文件上传下载

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

    Spring MVC实现文件的上传下载

    -- 指定最大上传文件大小,例如10MB --&gt; ``` 在Controller中,创建一个处理文件上传的方法,如下所示: ```java @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile...

    spring mvc上传 下载ftp文件

    spring mvc上传 下载ftp文件

    ssm框架--spring mvc实现文件上传

    在Spring MVC中,`MultipartFile`类是用于处理上传文件的核心类,它封装了文件的原始名称、临时存储路径、文件大小等信息。你可以通过`MultipartFile`的API读取文件内容,或者将其保存到服务器的指定位置。为了防止...

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

    在Spring MVC框架中,文件上传是一项常见的功能,无论是普通的文件上传还是通过Ajax实现的异步文件上传,都为用户提供了更好的交互体验。本篇将详细讲解这两种方式的实现原理及步骤。 首先,让我们来理解一下普通...

    spring mvc+ajax 文件上传

    本示例探讨的是如何利用Spring MVC后端框架与前端的Ajax技术来实现高效的文件上传,相较于传统的表单提交方式,这种方法具有无刷新、用户体验更佳的优势。以下是关于这个主题的详细讲解。 首先,我们需要理解Spring...

    第五章 Spring MVC 文件上传

    -- 指定最大上传文件大小,单位为MB --&gt; ``` 2. **创建上传表单** 在HTML页面上,使用`enctype="multipart/form-data"`指定表单类型,然后添加`&lt;input type="file"&gt;`字段让用户选择要上传的文件。例如: `...

    spring学习: spring mvc上传文件方法分析

    本文将深入探讨Spring MVC中的文件上传方法,并基于提供的“spring学习:spring mvc上传文件方法分析”标题进行详细的解析。 首先,理解Spring MVC处理文件上传的基本流程至关重要。当用户在表单中选择文件并提交时...

    spring mvc文件上传下载实例

    -- 设置最大上传文件大小,单位为MB --&gt; ``` 2. **表单设置**:在HTML表单中,`enctype`属性必须设置为`multipart/form-data`,以允许文件上传。 ```html ``` 3. **控制器处理**:在Spring MVC的控制器方法...

Global site tag (gtag.js) - Google Analytics