springmvc实现文件上传功能

复制代码
第一:
@RequestMapping("/testUp")
public String testUp(MultipartFile photo, HttpSession session) throws IOException {
    //获取上传的文件的文件名
    String fileName = photo.getOriginalFilename();
    //获取上传的文件的后缀名
    String suffixName = fileName.substring(fileName.lastIndexOf("."));
    //将UUID作为文件名
    String uuid = UUID.randomUUID().toString().replaceAll("-","");
    //将uuid和后缀名拼接后的结果作为最终的文件名
    fileName = uuid + suffixName;
    //通过ServletContext获取服务器中photo目录的路径
    ServletContext servletContext = session.getServletContext();
    String photoPath = servletContext.getRealPath("photo");
    File file = new File(photoPath);
    //判断photoPath所对应路径是否存在
    if(!file.exists()){
        //若不存在,则创建目录
        file.mkdir();
    }
    String finalPath = photoPath + File.separator + fileName;
    //上传文件
    photo.transferTo(new File(finalPath));
    return "success";
}


@RequestMapping("/testUp") 注解指定了该方法用于处理HTTP请求,并将请求路径映射为"/testUp"。

MultipartFile photo 参数用于接收上传的文件,通过photo.getOriginalFilename()获取上传文件的文件名。

通过截取文件名的最后一个"."后的字符串,可以获取上传文件的后缀名。

使用UUID生成一个唯一的字符串,并将后缀名拼接在后面,作为最终的文件名。

通过HttpSession的getServletContext()方法获取服务器中photo目录的路径。

创建一个File对象,表示photo目录,如果目录不存在,则使用file.mkdir()方法创建目录。

将最终的文件路径拼接为photoPath + File.separator + fileName。

使用photo.transferTo(new File(finalPath))将上传的文件保存到最终路径中。

方法返回字符串"success",可能用于跳转到成功页面或其他相关操作。


这段代码实现了一个简单的文件上传功能,将上传的文件保存到服务器的photo目录中,并使用UUID生成一个唯一的文件名。通过MultipartFile对象的transferTo()方法,将上传的文件保存到最终路径中。

第二:
复制代码
<!--配置文件上传解析器,将上传的文件封装为MultipartFile-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
  • 这段XML配置代码使用了Spring框架中的CommonsMultipartResolver类来实现文件上传解析器的配置。
  • 通过将该解析器配置为一个Spring的Bean,可以在处理请求时自动将上传的文件封装为MultipartFile对象。
  • CommonsMultipartResolver是Spring框架提供的一个常用的文件上传解析器,它基于Apache Commons FileUpload库实现了文件上传的功能。
  • 通过配置该解析器,可以方便地在Spring MVC中处理文件上传的请求。
相关推荐
码云数智-园园4 天前
C++20 Modules 模块详解
java·开发语言·spring
咖啡八杯4 天前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
Flittly4 天前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring
李少兄4 天前
从原理到实战:Spring IoC/DI 核心知识体系与高频面试题全解
java·后端·spring
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
ofoxcoding4 天前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
一杯奶茶¥4 天前
水果销售网站 CRM客户信息管理系统 超市管理系 酒店管理系统 健身房管理系统 在线音乐网站 校园招聘系统
java·vue.js·spring boot·mysql·spring·java项目
摇滚侠4 天前
SpringMVC 入门到实战 RESTFul 49-55
java·开发语言·后端·spring·intellij-idea·restful
我登哥MVP4 天前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven
Ysouy4 天前
Spring Data Elasticsearch 全流程学习教程
java·spring·elasticsearch