700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用SSM框架上传图片

使用SSM框架上传图片

时间:2022-03-10 21:03:51

相关推荐

使用SSM框架上传图片

使用SSM框架上传图片

为了大家方便对照,我上传源码到网盘,有兴趣的自取.

ps:其中有一个存储数据的网页,我没删除,可以忽略

链接:/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="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /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></url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>1.7</piler.source><piler.target>1.7</piler.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 /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@AllArgsConstructorpublic 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 "-////DTD Mapper 3.0//EN""/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="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context" xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd /schema/context /schema/context/spring-context.xsd /schema/tx /schema/tx/spring-tx.xsd /schema/aop /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.boPooledDataSource"><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="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd /schema/context /schema/context/spring-context.xsd /schema/mvc /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.monsMultipartResolver"><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 "-////DTD Config 3.0//EN""/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.Driverjdbc.url=jdbc:mysql://localhost:3306/my_resource?characterEncoding=UTF-8jdbc.username=rootjdbc.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/生成的文件名即可访问图片

添加外部加载资源

效果图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。