spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方
1.form的enctype=”multipart/form-data” 这个是上传文件必须的
2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少

大家可以看具体代码如下:

web.xml

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  3. <display-name>webtest</display-name>
  4. <listener>
  5. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  6. </listener>
  7. <context-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>
  10. /WEB-INF/config/applicationContext.xml
  11. /WEB-INF/config/codeifAction.xml
  12. </param-value>
  13. </context-param>
  14. <servlet>
  15. <servlet-name>dispatcherServlet</servlet-name>
  16. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  17. <init-param>
  18. <param-name>contextConfigLocation</param-name>
  19. <param-value>/WEB-INF/config/codeifAction.xml</param-value>
  20. </init-param>
  21. <load-on-startup>1</load-on-startup>
  22. </servlet>
  23. <!-- 拦截所有以do结尾的请求 -->
  24. <servlet-mapping>
  25. <servlet-name>dispatcherServlet</servlet-name>
  26. <url-pattern>*.do</url-pattern>
  27. </servlet-mapping>
  28. <welcome-file-list>
  29. <welcome-file>index.do</welcome-file>
  30. </welcome-file-list>
  31. </web-app>

applicationContext.xml

[html] view plaincopyprint?
  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" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
  7. default-lazy-init="true">
  8. <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
  9. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" lazy-init="false" />
  10. <!-- 另外最好还要加入DefaultAnnotationHandlerMapping,不然会被 XML或其它的映射覆盖! -->
  11. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  12. <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
  13. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
  14. <!-- 支持上传文件 -->
  15. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
  16. </beans>

codeifAction.xml

[html] view plaincopyprint?
  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" xmlns:context="http://www.springframework.org/schema/context"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  5. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
  6. default-lazy-init="true">
  7. <bean id="uploadAction" class="com.codeif.action.UploadAction" />
  8. </beans>

UploadAction.java

[java] view plaincopyprint?
  1. package com.codeif.action;
  2. import java.io.File;
  3. import java.util.Date;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.ModelMap;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestParam;
  9. import org.springframework.web.multipart.MultipartFile;
  10. @Controller
  11. public class UploadAction {
  12. @RequestMapping(value = "/upload.do")
  13. public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model) {
  14. System.out.println("开始");
  15. String path = request.getSession().getServletContext().getRealPath("upload");
  16. String fileName = file.getOriginalFilename();
  17. //        String fileName = new Date().getTime()+".jpg";
  18. System.out.println(path);
  19. File targetFile = new File(path, fileName);
  20. if(!targetFile.exists()){
  21. targetFile.mkdirs();
  22. }
  23. //保存
  24. try {
  25. file.transferTo(targetFile);
  26. } catch (Exception e) {
  27. e.printStackTrace();
  28. }
  29. model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);
  30. return "result";
  31. }
  32. }

index.jsp

[html] view plaincopyprint?
  1. <%@ page pageEncoding="utf-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <title>上传图片</title>
  7. </head>
  8. <body>
  9. <form action="upload.do" method="post" enctype="multipart/form-data">
  10. <input type="file" name="file" /> <input type="submit" value="Submit" /></form>
  11. </body>
  12. </html>

WEB-INF/jsp/下的result.jsp

[html] view plaincopyprint?
  1. <%@ page pageEncoding="utf-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <title>上传结果</title>
  7. </head>
  8. <body>
  9. <img alt="" src="${fileUrl }" />
  10. </body>
  11. </html>

spring mvc(注解)上传文件的简单例子相关推荐

  1. Spring MVC实现上传文件报错解决方案

    Spring MVC实现上传文件报错解决方案 参考文章: (1)Spring MVC实现上传文件报错解决方案 (2)https://www.cnblogs.com/liuling/p/2014-3-5 ...

  2. spring mvc + ajax上传文件,页面局部刷新

    1.点击上传按钮进行如下操作,通过表单名称以及input名称获取相应的值,对于上传的文件,使用.files来获取, 因为包含文件的上传,所以采用FormData的形式来进行数据交互,通过append将 ...

  3. Spring MVC 如何上传多个文件到指定位置

    Spring MVC 如何上传多个文件到指定位置 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公 ...

  4. ASP.Net Core创建MVC项目上传文件(缓冲方式)

      学习了普通webapp中上传文件,再看看从MVC项目中通过缓冲方式上传文件到物理文件夹.这两者的区别主要是webapp通过模型绑定的方式传递IFormFile对象,而mvc通过控制器和action ...

  5. spring cloud feign 上传文件报not a type supported by this encoder解决方案

    上传文件调用外部服务报错: not a type supported by this encoder 查看SpringFormEncoder类的源码: 1 public class SpringFor ...

  6. spring boot进行上传文件

    1.pom文件添加依赖 <!-- 添加thymeleaf --><dependency> <groupId>org.springframework.boot< ...

  7. Spring Boot (30) 上传文件

    文件上传 上传文件和下载文件是Java Web中常见的一种操作,文件上传主要是将文件通过IO流传输到服务器的某一个文件夹下. 导入依赖 在pom.xml中添加上spring-boot-starter- ...

  8. spring mvc 附件上传至腾讯云qcloud

    简单记录主要是便于自己用,有需要的参考一下... 上传至腾讯云,相关文档参阅官方文档 附件为比较早的版本,自己修改过 1.实体bean --用multipartFile接收 public class ...

  9. php实现上传文件功能,简单实现php上传文件功能

    本文实例为大家分享了php上传文件功能的具体代码,供大家参考,具体内容如下 html: 文件名: php: // 允许上传的图片后缀 $allowedExts = array("gif&qu ...

最新文章

  1. 第六章 Web开发实战1——HTTP服务
  2. Codeforces 427 D. Match amp; Catch
  3. 关于Adapter的The content of the adapter has changed but ListView did not receive a notification.问题分析
  4. python服务端对应多个客户端_Python-网络编程:TCP2 循环为多个客户端服务
  5. Codeforces Round #674 (Div. 3) F. Number of Subsequences 简单计数dp
  6. Sound Ventures斥资百万美元举行NFT竞赛活动
  7. python 解析命令行
  8. java阶段培训内容报告_周报告及Java学习笔记
  9. 最小标示法模板 poj1509
  10. 《深入理解Nginx》 学习笔记(二)
  11. MybatisPlus学习笔记
  12. SRCNN-pytoch代码讲解
  13. 面向对象基础实战——飞机大战
  14. P,NP,NPC,NP-HARD 图片基于P!=NP
  15. 离散数据:析取范式与合取范式
  16. Hard link and soft link in Linux
  17. OpenGL ES EGL eglCreatePbufferSurface
  18. 逍遥模拟器怎样连接android,逍遥安卓模拟器
  19. 什么是灰度发布,以及灰度发布A/B测试
  20. 移动宽带GM220-S光猫桥接

热门文章

  1. 计算机视觉--图像处理基础操作学习博客参考1
  2. C语言实现简单的面向对象例子
  3. 深入解析Windows窗口创建和消息分发
  4. java poi 更新excel_在Java Apache POI中更新现有的Excel文件
  5. 如何成为android开发工程师,android开发工程师薪资 如何成为一名合格的android开发工程师?...
  6. 数字信号处理学习笔记(三)|时域离散系统的网络结构
  7. matlab dfe 仿真,用matlab仿真DFE均衡器
  8. Pandas 操作 csv 文件
  9. 第四范式成为金融信创生态实验室首个AI合作伙伴
  10. ICML论文录取难度逐年上升,New In ML为你特设“名师辅导班”