pringMVC获得请求数据2:客户端上传文件给服务端,服务端保存客户端传来的文件

客服端上传文件给服务端:
在这里插入图片描述

1.上传原理

在这里插入图片描述

2.客户端上传文件给服务端,服务端保存客户端传来的文件步骤:

① 导入fileupload和io坐标
② 配置文件上传解析器
③ 编写文件上传代码

代码还是用上一篇的:
https://blog.csdn.net/GLOAL_COOK/article/details/112852352

用到的代码:
在这里插入图片描述

下面分为单文件上传保存和多文件,都差不多的:

1.在pom.xml导入坐标:

<!--文件上传要的-->
        <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>

2.配置文件上传解析器
在这里插入图片描述
在springmvc-xml配置:(注意这里是UYF-8

<!--配置文件上传解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UYF-8"/>  <!--这里注意是UYL-->
        <property name="maxUploadSize" value="500000"/>  <!--5M-->
    </bean>

在这里插入图片描述
QuickController :

package cn.itcast.controller;

        import cn.itcast.domain.User;
        import cn.itcast.domain.VO;
        import com.fasterxml.jackson.databind.ObjectMapper;
        import org.springframework.stereotype.Controller;
        import org.springframework.ui.Model;
        import org.springframework.web.bind.annotation.*;
        import org.springframework.web.multipart.MultipartFile;
        import org.springframework.web.servlet.ModelAndView;

        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import javax.servlet.http.HttpSession;
        import java.io.File;
        import java.io.IOException;
        import java.util.ArrayList;
        import java.util.Arrays;
        import java.util.Date;
        import java.util.List;

/**
 * @author QLBF
 * @version 1.0
 * @date 2021/1/17 21:10
 */

@Controller
@RequestMapping("/user")  //一级访问目录
public class QuickController {

    //下面演示获取请求数据--获取客服端发来的单文件
    @RequestMapping(value = "/quick22")
    @ResponseBody
    //下面参数名得跟文件表单提交过来一致才行,上一篇博客也有讲
    public void save22(String username, MultipartFile uploadFile) throws Exception {
        System.out.println(username);
        System.out.println(uploadFile);
        //获得上传文件的名称
        String originalFilename = uploadFile.getOriginalFilename();
        uploadFile.transferTo(new File("F:\\uploadfiles\\"+originalFilename));  //服务器进行保存客服端上传的文件
    }

    //下面演示获取请求数据--获取客服端发来的多文件,跟单一样,只不过用数组来接收而已
    @RequestMapping(value = "/quick23")
    @ResponseBody
    //下面参数名得跟文件表单提交过来一致才行,上一篇博客也有讲
    public void save23(String username, MultipartFile[] uploadFile) throws Exception {
        System.out.println(username);
        for (MultipartFile multipartFile : uploadFile) {
            String originalFilename = multipartFile.getOriginalFilename();
            multipartFile.transferTo(new File("F:\\uploadfiles\\"+originalFilename));  //服务器进行保存客服端上传的文件

        }
    }
}

2.1单文件

在webapp新建uploadsinglefile.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false"%>

<html>
<head>
    <title>单文件上传</title>
</head>
<body>

<form action="${pageContext.request.contextPath}/user/quick22" method="post" enctype="multipart/form-data">
    名称 <input type="text" name="username"><br>
    文件 <input type="file" name="uploadFile"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

服务器代码quick22见上
浏览器输入http://localhost:8080/uploadsinglefile.jsp
在这里插入图片描述

控制台输出:
在这里插入图片描述

文件保存到服务器的盘里了:
在这里插入图片描述
下面看看

2.2.多文件上传和服务器保存:

uploadmanyfile.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false"%>

<html>
<head>
    <title>单文件上传</title>
</head>
<body>

<form action="${pageContext.request.contextPath}/user/quick23" method="post" enctype="multipart/form-data">
    名称 <input type="text" name="username"><br>
    文件1 <input type="file" name="uploadFile"><br>
    文件2 <input type="file" name="uploadFile"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

在这里插入图片描述服务器代码quick23见上
控制台:在这里插入图片描述

文件也保存到服务器盘里:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值