SpringMVC文件上传

1.首先引入相关依赖

 <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.3</version>
      </dependency>

2.配置文件上传解析器(CommonsMultipartResolver)

在你的mvc配置文件中加上

<!--上传文件-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 -->
        <property name="defaultEncoding" value="UTF-8"></property>
        <!-- 文件最大大小(字节) 1024*1024*50=50M-->
        <property name="maxUploadSize" value="52428800"></property>
        <!--resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常-->
        <property name="resolveLazily" value="true"/>
    </bean>

3.然后是前台页面代码

<%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="utf-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>增加</title>
</head>
<body>
<c:if test="${error!=null}">
    <p color="red">${error}</p>
</c:if>
<form action="${pageContext.request.contextPath}/addstu" enctype="multipart/form-data" method="post">
    姓名:<input type="text" name="name" ><br>
    年龄:<input type="age" name="age"><br>
    地址(假装是一个文件):<input type="file" name="file"><br>
<input type="submit" value="提交"><a href="${pageContext.request.contextPath}/tolist" ><input type="button" value="返回"></a>
</form>



</body>
</html>

4.后台控制器代码

  @RequestMapping("/addstu")
    public String studentList(Student student, Model model,@RequestParam("file") MultipartFile files,
                              HttpServletRequest request) {

        try {
            //将文件复制到新文件完成文件上传
//我们将文件保存到本地的文件夹
//            getOriginalFilename()//获取文件名
            FileUtils.copyInputStreamToFile(files.getInputStream(),new File("E://1/"+files.getOriginalFilename()));
  //将文件信息保存到数据库
// 这里保存的是访问的地址字段
            student.setAdress("http://localhost:8080/upload/"+files.getOriginalFilename());
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        int i = iStudentService.insertSelective(student);
        if (i > 0) {
            model.addAttribute("error", null);
            return "redirect:/tolist";
        } else {
            model.addAttribute("error", "新增失败");
            return "add";
        }
    }

5.显示问题解决

但是这个时候我们前台访问是看不到图片的

 

实际上图片已经上传成功了 

我们需要添加一个文件夹的映射关系

选中你图片实际上传到的文件夹,然后配置映射路径为/upload即可访问到图片,我们这样做的好处就是重启tomcat图片还在

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值