SpringMVC下的文件上传和下载

第一步 添加jar包

<?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>com.liang</groupId>
  <artifactId>springMvc-day2</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>springMvc-day2 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>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
<!--spring4.x版本的默认json字符转化控制器-->
    <!--<dependency>-->
      <!--<groupId>com.google.code.gson</groupId>-->
      <!--<artifactId>gson</artifactId>-->
      <!--<version>2.8.5</version>-->
    <!--</dependency>-->

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

    <!--fastjson的依赖-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.58</version>
    </dependency>

    <!-- 文件上传和下载所需要的jar 两个 commons-io commons-fileupload -->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.5</version>
    </dependency>

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


  </dependencies>


</project>

简单的依赖

创建一个jsp文件


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>

    <form action="${pageContext.request.contextPath}/book/upload.do"
          method="post" enctype="multipart/form-data">
        <input type="file" name="file1">
        <input type="submit">
    </form>
</head>
<body>

</body>
</html>

第三步 创建一个contrller类

需要注意的点是file1 的名字要和jsp中的name名字一致
    @RequestMapping("upload")
//    MultipartFile类型的新参名称要和文件输入框(type=file)的name保持一致
    public String upload(MultipartFile file1, HttpSession httpSession)throws Exception{
//        获取原文件的文件名
        String s1 = file1.getOriginalFilename();
//        保存文件的路径
        String path = httpSession.getServletContext().getRealPath("/upload");
//        我们用transferTo()将文件file1这个接受的上传文件进行保存
        file1.transferTo(new File(path,s1));
        return "forward:/index.jsp";
    }
其中要在webapp创建一个文件夹 (upload) 这个文件夹不要为空 不然会报错

在这里插入图片描述

第四步 mvc.xml 文件

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--文件上传默认文件的大小是2M,单位B
                    1M = 1024kb
                    1kb = 1024B
                    10485760B = 10M  为上传的文件的大小
        -->
        <property name="maxUploadSize" value="10485760"></property>
    </bean>

然后运行即可

成功
在这里插入图片描述

下载

在这里插入图片描述

需要再写一个jsp

在这里插入图片描述

为解决一些问题 比如在idea中使用clean 会将下载在项目中的文件删除 还会存在一定的数据不安全(用户可以通过浏览器读取文件)

在这里插入图片描述

解决办法

在电脑的一个盘中(E盘) 创建一个文件夹(fuwuqi) 不能写有中文 并在项目的tomcat中进行配置

在这里插入图片描述

在controller 进行更改

在这里插入图片描述

一般在公司里边会在创建一个类 Comments 将文件路径写在类中 相当于小配置文件 方便修改
第一步 创建一个类

在这里插入图片描述

第二步 修改contrller

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值