Maven+SpringMVC+MyBatis 上传图片

  上传文件我一直都觉得很难,好吧,所有涉及文件操作的我都觉得不容易。然后今天尝试了从网页上传图片保存到服务器。这个例子的前提是搭建好了服务器端框架:Maven+Spring MVC+MyBatis。当然必要的准备我也要提及。

  首先是jar包,上传文件必不可少的jar包:commons-fileupload和commons-io。这两个是apache的开源jar包。

  Maven配置:

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

Maven配置

  有了这两个jar包基本上就行了。

  

  还有一个准备工作是对SpringMVC上传文件的配置:

<!-- 对上传文件的配置 -->
<bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding">
        <value>UTF-8</value>
    </property>
    <property name="maxUploadSize">
        <value>32505856</value><!-- 上传文件大小限制为31M,31*1024*1024 -->
    </property>
    <property name="maxInMemorySize">
        <value>4096</value>
    </property>
</bean>

Show Code

  

  接下来是上传文件的jsp页面,当然一般的html页面也是可以的。特别要注意的是,form表单里面有文件上传时,必须要指定enctype属性值为multipart/form-data,意思是以二进制流的形式传输文件。否则会上传不了,会报错的。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html lang="en">
 5 <head>
 6     <meta charset="UTF-8">
 7     <title>Document</title>
 8 </head>
 9 <body>
10     <form action="appuser/uploadHeadPhoto.do"
11     method="POST" enctype="multipart/form-data" >
12         <input type="file" name="headPhotoFile">
13         <input type="text" name="userId" value="1" readonly>
14         <button type="submit" value="提交">提交</button>
15     </form>
16 </body>
17 </html>

index.jsp

  

  后台Controller处理文件上传的接口,主要过程是获取文件二进制流,然后写入新创建的jpg,返回新创建的jpg的地址,将地址写入数据库。数据库里面最终存放的jpg图片路径是D:\Program Files\apache-tomcat-7.0.62\webapps\springmvcImage\14386803406181764242780.jpg。

 1 @RequestMapping("/uploadHeadPhoto")
 2     public String uploadHeadPhoto(@RequestParam MultipartFile headPhotoFile, HttpServletRequest request) throws IOException{
 3         String userId = request.getParameter("userId");
 4
 5         if(headPhotoFile.isEmpty()){
 6             System.out.println("文件未上传");
 7         }else{
 8             String contentType = headPhotoFile.getContentType();
 9             System.out.println(contentType);//输出image/jpeg
10             if(contentType.startsWith("image")){
11                 //获取Web项目的全路径
12                 String realPath = request.getSession().getServletContext().getRealPath("/");
13                 System.out.println(realPath);//输出D:\Program Files\apache-tomcat-7.0.62\webapps\springmvc\
14                 realPath = realPath.replace("springmvc", "springmvcImage");
15                 realPath.concat("user");
16                 String newFileName = new Date().getTime()+""+new Random().nextInt()+".jpg";
17                 FileUtils.copyInputStreamToFile(headPhotoFile.getInputStream(), new File(realPath, newFileName));
18
19                 //将图片路径插入数据库
20                 Map<String, Object> requestMap = new HashMap<String, Object>();
21                 requestMap.put("userId", userId);
22                 requestMap.put("headPhoto", realPath+newFileName);
23                 int flag = userService.uploadHeadPhoto(requestMap);
24                 if(flag!=0&&flag!=-1){
25                     System.out.println("success");
26                     return "success";
27                 }
28             }
29         }
30
31         return null;
32     }

  

时间: 2024-08-09 08:21:46

Maven+SpringMVC+MyBatis 上传图片的相关文章

maven+springMVC+mybatis+junit详细搭建过程 【转】

springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效果:项目目录结构清晰,能够查询到本地数据库中的内容..) 1.  工程目录结构整理清楚 在src/main/java文件夹中,新建包cn.springmvc.model(存放javabean), cn.springmvc.dao(存放spring与mybatis连接接口), cn.springmvc.service(service接口), cn.spri

maven+springMVC+mybatis+junit详细搭建过程

springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效果:项目目录结构清晰,能够查询到本地数据库中的内容..) 1.  工程目录结构整理清楚 在src/main/java文件夹中,新建包cn.springmvc.model(存放javabean), cn.springmvc.dao(存放spring与mybatis连接接口), cn.springmvc.service(service接口), cn.spri

Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker) ----DawnHeaven

Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker)       ------DawnHeaven 一.准备工作 1.Eclipse Java EE IDE(4.4.1) 2.JDK 3.Tomcat 4.Maven  maven安装指南 二.构建工程 1.file->new->Project 2.next 3. next 4.next 5.finish 工程目录如下 三.完善项目 首先,完善目录,增加重要的source Folder,这个不是

服务化、原子化maven,springmvc,mybatis,shiro,bootstrap框架整合

下载源码猛搓这里 maven构建springmvc+mybatis+rest+bootstrap(cms开源)SpringMVC + Mybatis + SpringSecurity(权限控制到方法按钮) + Rest(服务) + Webservice(服务) + Quartz(定时调度)+ Lucene(搜索引擎) + HTML5 bootstrap + Maven项目构建绝对开源平台项目Mave构建,模拟大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供原子化.模块化的

maven,springmvc,mybatis,bootstrap,restful 框架整合

下载源码猛搓这里 maven构建springmvc+mybatis+rest+bootstrap(cms开源)SpringMVC + Mybatis + SpringSecurity(权限控制到方法按钮) + Rest(服务) + Webservice(服务) + Quartz(定时调度)+ Lucene(搜索引擎) + HTML5 bootstrap + Maven项目构建绝对开源平台项目Mave构建,模拟大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供原子化.模块化的

原:maven+springMVC+mybatis+junit详细搭建过程

阅读目录 1.  工程目录结构整理清楚 2.  引入依赖包 3. 配置数据库连接属性 4.  配置spring配置文件 5.  java代码编写(model,dao,service层代码) 6.  mybatis配置 7.  junit测试插入功能 8.  springMVC模块搭建 9.  log4j日志记录搭建 10.  测试运行 整体包下载地址: springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效

大型互联网企业框架整合maven,springmvc,mybatis,shiro,bootstrap

下载源码猛搓这里 maven构建springmvc+mybatis+rest+bootstrap(cms开源)SpringMVC + Mybatis + SpringSecurity(权限控制到方法按钮) + Rest(服务) + Webservice(服务) + Quartz(定时调度)+ Lucene(搜索引擎) + HTML5 bootstrap + Maven项目构建绝对开源平台项目Mave构建,模拟大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供原子化.模块化的

【maven构建高并发、大数据、服务化框架搭建】maven+Springmvc+Mybatis+Shiro+REST+WebService+JMS+Lucene+Bootstrap html5

1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3. 所有功能模块化.所有模块服务化.所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机 4. 提供Wink Rest.Webservice服务,故可作为独立服务平台部署 框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务)

【企业级框架整合源码】maven+Springmvc+Mybatis+Shiro+REST+WebService+JMS+Lucene+Bootstrap

开发报捷:增加Lucene搜索引擎功能 1. 创建.初始化索引.统一搜索入口.搜索结果展现--内容.标题高亮.关键词搜索 2. 高级搜索:高级搜索增加多入口查询(精确查询.模糊查询.前缀查询等),每页显示条数自定义.索引结果数据设置.选择索引文档类型等) 集成lucene搜索引擎: 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3.