说明:
开发环境: IntelliJ IDEA 2018.2.4 x64
java version: “1.8.0_111”
基于ssm框架
项目目录
UpdaloadController核心代码:
@Controller
public class UploadController {
//注入业务层接口依赖
@Autowired
private FileService fileService;
@RequestMapping("/upload")
public String upload(String name, Integer age, MultipartFile filepath) throws IOException {
System.out.println("上传文件的原始名称:" + filepath.getOriginalFilename());
System.out.println("上传文件的类型:" + filepath.getContentType());
//单位是字节
System.out.println("获取上传文件大小:" + filepath.getSize()+ "字节");
//设置对象
User user = new User();
user.setName(name);
user.setAge(age);
user.setFilepath("d:\\" + filepath.getOriginalFilename());
//存入数据库
fileService.insert(user);
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
System.out.println("图片路径:"+"d:\\" + filepath.getOriginalFilename());
// 生成了临时文件, 当请求结束, 此临时文件会被删除
//因此将它存储在磁盘上,命名方式为d盘符下原始文件名
filepath.transferTo(new File("d:\\" + filepath.getOriginalFilename()));
return "index";
}
}
FileDao:
@Repository
public interface FileDao {
@Insert("insert into user(name,age,filepath)values(#{name},#{age},#{filepath})")
public void insert(User user);
}
FileService:
public interface FileService {
User insert(User user);
}
FileServiceImpl:
package edu.gzh.service.serviceImpl;
import edu.gzh.dao.FileDao;
import edu.gzh.entity.User;
import edu.gzh.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/*
* @author F3ver1
* @date 2019/2/20 21:42
*/
@Service
public class FileServiceimpl implements FileService {
@Autowired
FileDao fileDao;
@Override
public User insert(User user) {
fileDao.insert(user);
return user;
}
}
贴一下本次的springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql:///login?serverTimezone=GMT%2B8" />
<property name="user" value="root" />
<property name="password" value="test" />
</bean>
<!-- 开启mvc注解 -->
<mvc:annotation-driven />
<!-- 扫描控制器类 -->
<context:component-scan base-package="edu.gzh.controller"/>
<context:component-scan base-package="edu.gzh.service"/>
<!-- 扫描接口 -->
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="edu.gzh.dao"/>
</bean>
<!-- 配置 sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置视图解析器-->
<mvc:view-resolvers>
<mvc:jsp prefix="/" suffix=".jsp" />
</mvc:view-resolvers>
<!-- 配置上传文件表单解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 限制上传文件的总大小,单位是字节-->
<!--<property name="maxUploadSize" value="20000"></property>-->
</bean>
</beans>
附加内容!!!
Interceptor的使用:
代码贴上 用的时候稍加修改即可。
public class LoginIntercepter implements HandlerInterceptor
{
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("执行pre------------");
User user = (User) httpServletRequest.getSession().getAttribute("session_user");
if(user==null){
httpServletResponse.sendRedirect("/index.jsp");
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("执行post------------");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("执行after------------");
}
}
当然要在springmvc.xml里加入以下内容咯:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/*"/>
<bean class="包名.拦截器类名"/>
</mvc:interceptor>
</mvc:interceptors>
图片素材自取
over~