遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

SpringMVC上传文件

文件上传的要求

A、form表单的enctype取值必须是:multipart/form-data
B、method属性取值必须是Post
C、提供一个文件选择域 <input type="file" /> 

 

springmvc上传文件示例

这里只是演示,上传的文件和访问的应用在同一台服务器上。

pom添加依赖

    <!--文件上传的依赖-->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.3.2</version>
    </dependency>

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

 

创建保存文件的目录

在webapp下创建目录upload,上传的文件放到这个目录下

 

jsp页面

在webapp下创建upload.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>文件上传</h1>
    <form action="/testFileUpload" method="post" enctype="multipart/form-data">
        文件:<input type="file" name="uploadFile"/><br/>
        <input type="submit" value="上传"/>
    </form>
</body>
</html>

 

web.xml中修改欢迎页

  <welcome-file-list>
    <welcome-file>upload.jsp</welcome-file>
  </welcome-file-list>  

 

控制器

package com.qzcsbj.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@Controller
public class TestUploadController {

    @RequestMapping("/testFileUpload")
    public String testFileUpload(MultipartFile uploadFile, HttpServletRequest request) throws Exception {
        String fileName = "";
        // 获取原始文件名字
        String uploadFileName = uploadFile.getOriginalFilename();
        // 把文件加上随机数,防止文件重复
        String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
        fileName = uuid + "_" + uploadFileName;
        System.out.println("要上传的文件的名称是:" + fileName);
        // 获取上传的路径
        String basePath = request.getServletContext().getRealPath("/upload");
        System.out.println("basePath:" + basePath);
        // 每天一个文件夹
        String datePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
        // 判断路径是否存在
        File file = new File(basePath + "/" + datePath);
        if (!file.exists()) {
            file.mkdirs();
        }
        // 把上传的文件写到指定位置
        File f = new File(file, fileName);
        uploadFile.transferTo(f);
        System.out.println("文件上传成功,路径为:" +f.getAbsolutePath());
        return "success";
    }
}

 

配置文件解析器

springmvc.xml中添加:

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为 5MB -->
        <property name="maxUploadSize">
            <value>5242880</value>
        </property>
    </bean>

 

测试

启动tomcat,选择要上传的文件,点击“上传”

 

日志

 

上传成功

 

访问图片:http://localhost:8080/upload/2023-01-18/47CE4F91ADD84030B77E223FB07951AE_fu.jpg

 

【bak】

原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17058667.html

 

posted @ 2023-01-17 20:44  全栈测试笔记  阅读(29)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end