使用SSM框架上传图片

为了大家方便对照,我上传源码到网盘,有兴趣的自取.
ps:其中有一个存储数据的网页,我没删除,可以忽略
链接:https://pan.baidu.com/s/1u24E8mUs4K-raoQgx-ae2A
提取码:java

建数据表

CREATE DATABASE my_resource;USE my_resource;CREATE TABLE `image`(`id` INT AUTO_INCREMENT ,`title` VARCHAR(255) ,`url` VARCHAR(255) ,`type` VARCHAR(20),PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

通过idea开始一个maven工程

导入相应坐标到pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>ssm2</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>ssm2 Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><!--spring相关--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.7</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency><!--servlet和jsp--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency><!--mybatis相关--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope></dependency><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.3</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources><finalName>ssm2</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>

在main生成如下包路径

实体类

package com.hoymit.domain;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Images {private Integer id;private String title;private String url;private String type;
}

编写mapper接口(在resource目录下创建一个和在main相同的包路径下面)

package com.hoymit.mapper;import com.hoymit.domain.Images;public interface ImagesMapper {void saveAll(Images images);
}

编写相应的xml实现

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hoymit.mapper.ImagesMapper"><insert id="saveAll" parameterType="images">//在xml中已经配置别名insert into image values(#{id},#{title},#{url},#{type})</insert></mapper>

编写service接口

package com.hoymit.service;import com.hoymit.domain.Images;public interface ImagesService {void saveAll(Images images);
}

编写相应实现

package com.hoymit.service.impl;import com.hoymit.domain.Images;
import com.hoymit.mapper.ImagesMapper;
import com.hoymit.service.ImagesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service("imagesService")
public class ImagesServiceImpl implements ImagesService {@Autowiredprivate ImagesMapper imageMapper;@Overridepublic void saveAll(Images images) {imageMapper.saveAll(images);}
}

配置文件

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!--组件扫描 扫描service和mapper--><context:component-scan base-package="com.hoymit"><!--排除controller的扫描--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter></context:component-scan><!--加载propeties文件--><context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder><!--配置数据源信息--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean><!--配置sessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><!--加载mybatis核心文件--><property name="configLocation" value="classpath:sqlMapConfig-spring.xml"></property></bean><!--扫描mapper所在的包 为mapper创建实现类--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.hoymit.mapper"></property></bean><!--声明式事务控制--><!--平台事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!--配置事务增强--><tx:advice id="txAdvice"><tx:attributes><tx:method name="*"/></tx:attributes></tx:advice><!--事务的aop织入--><aop:config><aop:advisor advice-ref="txAdvice" pointcut="execution(* com.hoymit.service.impl.*.*(..))"></aop:advisor></aop:config></beans>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--组件扫描  主要扫描controller--><context:component-scan base-package="com.hoymit.controller"></context:component-scan><!--配置mvc注解驱动--><mvc:annotation-driven></mvc:annotation-driven>
<!--    返回json快捷写法--><!--内部资源视图解析器--><bean id="resourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean><!--开发静态资源访问权限--><mvc:default-servlet-handler></mvc:default-servlet-handler><!--配置文件上传解析器--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"/><property name="maxUploadSize" value="500000"/></bean>
</beans>

sqlMapConfig-spring.xml(一般这里只剩下别名了,其他bean都通过spring容器进行注入)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--定义别名--><typeAliases><!--<typeAlias type="com.itheima.domain.Account" alias="account"></typeAlias>--><package name="com.hoymit.domain"></package></typeAliases></configuration>

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/my_resource?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456

在webapp下创建相应的jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><form action="${pageContext.request.contextPath}/load/imageTest" method="post" enctype="multipart/form-data">图片文件<input type="file" name="uploadFile" multiple><br/>文章标题:<input type="text" name="title"><br>图片位置:<input type="text" name="type"><br><input type="submit" value="提交"></form>
</body>
</html>

最后编写controller层

import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;@Controller
@RequestMapping("/load")
public class ImagesController {@Autowiredprivate ImagesService imagesService;@RequestMapping(value = "/imageTest" ,produces = "text/html;charset=UTF-8")@ResponseBodypublic String  loadImageTest(MultipartFile[] uploadFile, Images image){for (MultipartFile multipartFile : uploadFile) {String originalFilename = multipartFile.getOriginalFilename();//原文件名字String newFilename= UUID.randomUUID()+"_"+originalFilename;    //使用UUID避免重名File filePath=new File("D:\\load_load\\"+newFilename);try {multipartFile.transferTo(filePath);} catch (IOException e) {e.printStackTrace();return "上传失败";}String url = "http://localhost:8080/load_load/"+newFilename;image.setUrl(url);System.out.println(image.getTitle()+"----------------------------");imagesService.saveAll(image);}return "binggo";}
}

此时我把D盘下的load_load作为服务器存放图片资源的文件夹,通过访问http://localhost:8080/load_load/生成的文件名即可访问图片

添加外部加载资源

效果图

使用SSM框架上传图片相关推荐

  1. ssm 框架上传图片到服务器

    ** 1.html部分 <input id="file" class="kf-img-file" type="file"> 2. ...

  2. 手把手教你整合最优雅SSM框架

    我们看招聘信息的时候,经常会看到这一点,需要具备 SSM 框架的技能, SpringMVC 可以完全替代 Struts,配合注解的方式,编程非常快捷,而且通过 restful 风格定义 url,让地址 ...

  3. 手把手搭建SSM框架

    搭建一个简单的SSM框架,分享给大家,以后自己也可以拿出来用 1.用maven项目管理工具搭建一个简单SSM的demo:工具Eclipse,Mysql-5.5,Tomcat-7.0,Maven-3.0 ...

  4. 基于SSM框架的校园论坛设计与实现(MySQL、JSP)

    此文章记录了本人毕业设计的设计与实现过程,欢迎大家交流讨论. 目录 摘 要 第1章 绪 论 1.1 课题背景及研究的目的和意义 1.2 国内外研究现状 1.3 本文的主要研究内容 第2章 系统总体设计 ...

  5. 基于SSM框架实现的影城票务管理系统【源码+数据库+运行指导视频】

    一.项目简介 本项目是一套基于SSM框架实现的影城票务管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者. 包含:项目源码.数据库脚本等,该项目可以直接作为bi ...

  6. 基于SSM框架的人力资源后台管理系统

    相信很多小伙伴在学习完SSM三大架构以后,不知道该如何找到一个简单容易上手的项目进行实战训练,经常在博客上看到一个不错的项目下载下来以后全部都是代码,无处下手.因此本文力求以最简单易懂的项目结构和代码 ...

  7. 基于SSM框架的CMS内容管理系统的设计与实现

    基于SSM框架的CMS内容管理系统的设计与实现(付源码+论文) 工作任务: 1.通过学习和查找相关的资料,掌握SpringMVC.Spring.Mybatis框架的搭建及开发:通过学习掌握freema ...

  8. 前台+后台 java下载服务器、本地图片、文件(下载tomcat配置的虚拟路径文件)可指定任意保存路径,SSM框架

    背景:一个系统中有web网站与APP两个客户端,两个客户端有分别的后台,共同部署在一个服务器上,APP有一个上传图片.文件的功能,网站端则可以查看.下载APP上传的图片,下载APP上传的文件. 问题: ...

  9. 基于SSM框架贺州学院校园二手交易平台设计与实现

    前言 这个是我当时的毕业论文,分享出来,给同学们参考. 绪论 随着中国新四大发明的诞生,网购成了千千万万网友们购物的新方式,新的购物方式促进商业的发展,但随着人们生活水平的提高,许多新购置的物品用了没 ...

最新文章

  1. linux系统硬盘表识
  2. 计算机软件技术基础考前整理
  3. linux win32disk,windows使用Win32DiskImager安装树莓派系统
  4. 2021年山西副高考试成绩查询,中国卫生人才网2021年山西卫生资格考试成绩查询...
  5. 类似 汽车之家 对比_损坏汽车的日常行为都有哪些?你有做过吗?
  6. BDD敏捷开发入门与实战
  7. 腾讯云正式发布遨驰云原生操作系统
  8. MySQL 在指定位置新增字段
  9. android activity查询,android中activity.findViewById()方法查找的是什么?
  10. 通俗易懂RESTful,如何设计RESTful风格API
  11. 20135320赵瀚青LINUX内核分析第一周学习笔记
  12. 对付洗稿者的一个脑洞
  13. html的弹窗标签是什么意思,前端实现展示弹窗,为什么不同的标签弹出相同的内容?是不是js函数写错了,需要怎么改呢?...
  14. Spring Boot 学习笔记,这个太全了!
  15. 关于笔记本测试的面试准备 2021-10-11
  16. 各种浏览器怎么换ip
  17. python文件操作方法seek_Python文件操作及seek偏移详解
  18. 如何锻炼个人的演讲、写作与沟通能力
  19. Proxmox VE 7.2 使用qemu-img转换磁盘格式
  20. 记一次小米手机安装Google Play(其他手机类似)

热门文章

  1. 黑咖啡热控减肥 喝对方法快速瘦身
  2. m基于PTS+TR的OFDM系统PAPR联合抑制算法matlab仿真
  3. 毕业季寄行李使用python得到便宜的快递
  4. python与mysql交互下的简单购物系统
  5. SpringSecurity探究
  6. Vue内置指令的使用
  7. 汉字转拼音(纯html实现),JS实现超简单的汉字转拼音功能示例
  8. 【HelloWorld】双非普通本科生的一些碎碎念,一些关于2021的迟到总结、2022的小目标
  9. Solidity中Storage
  10. gojs-设置流动的连接线