【纯干货】SSM 实现文件上传

【干货】SSM,Jquery, Bootstrap从零打造一个论坛系统 前言 分享一个SSM的实战项目,一个使用springmvc,mybatis,jequery,bootstrap,ueditor打造的论坛系统,主要包含论坛主体,后台管理两个部分。 git地址如下:github.com/jsbintask22… 技术介绍 该系统主要使用服务端主要使用spring,mybatis进行搭建,前端主要为bootstrap,jquery编写的jsp页面,并且集成百度uedi... 阅读详情

0. 这里假设 SSM 环境已经搭建完成

1. 需要两个依赖包

<!-- 文件传输 -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

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

2. 在 spring-mvc.xml 文件中进行文件上传配置

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

3. 核心函数

/**
 * 上传文件
 * @param path 文件的相对路径
 * @param file 文件数据
 * @param request 请求
 * @return 文件的绝对路径
 */
public static String fileUpload(String path, MultipartFile file, HttpServletRequest request) throws IOException {
    // 先获取到文件要保存的路径
    String realPath = request.getSession().getServletContext().getRealPath("/" + path);
    System.out.println("【绝对路径】" + realPath);

    // 获取文件后缀名,然后为文件起一个新名字(使用 UUID 避免重名)
    System.out.println("【原文件名】" + file.getOriginalFilename());
    String fileName = file.getOriginalFilename();
    String suffix = fileName.substring(fileName.lastIndexOf("."));
    String newFileName = UUID.randomUUID().toString() + suffix;
    System.out.println("【新文件名】" + newFileName);

    // 新建一个文件对象
    File target = new File(realPath, newFileName);

    // 如果存放路径不存在,就新建一个
    if (!target.getParentFile().exists()) {
        // 新建文件夹
        if (!target.getParentFile().mkdirs()) {
            System.out.println("【目录为空】新建文件夹失败!");
            return null;
        }
    }

    // 成功的话将文件保存
    file.transferTo(target);

    // 最后返回文件的地址
    return target.getPath();
}

一共三步,文件上传功能就做好了~


接下来是简单的使用演示(type 自己看情况使用,也可以去掉):

=== Controller 层 ===

@PostMapping("/upload")
@ResponseBody
public String uploadFile(MultipartFile file, HttpServletRequest request) throws IOException {
    return fileService.fileUpload(1, file, request);
}
    
=== Service 层 ===

public String fileUpload(int fileType, MultipartFile file, HttpServletRequest request) throws IOException {
    String path = FileUtils.fileUpload("/image", file, request);
    System.out.println("上传文件成功:" + path);
    return path;
}

Postman 上演示
在这里插入图片描述
▲ 与之相关的还有 Excel 表格导出篇,可以看看这篇
【纯干货】SSM 实现将数据导出为 Excel 表格(利用反射实现类型通配)


晨露夜集(IceClean)

嵌入式开源项目哪里找 对比产生的伤害是经验思考积累下的差距,知道自己不知道什么然后前进去追寻。 阅读详情

相关推荐

博图V16与840D sl数控系统PLC编程实战指南

本文为西门子840D sl数控系统的PLC编程实战指南,详细介绍了如何使用博图V16软件配置编程环境。内容涵盖从项目创建、核心程序块(如DB、FB)解析到OB1主循环编程的完整流程,并提供了高级调试技巧与联调避坑指南,帮助工程师快速上手并高效完成系统集成与逻辑控制。

weixin_29193259的博客 527

SSM实现文件上传

SSM实现文件上传 1、修改from表单请求方式改为post,添加属性 2、修改springmvc配置文件,添加一下配置 3、后端方法

qi341500的博客 1785

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3122

ssm框架文件上传

9 文件上传 前端form添加enctype=“multipart/form-data”,method=“post” <form enctype="multipart/form-data" method="post" action=""> </form> 后端pom导包 <dependencies> <dependency> <groupId>commons-fileuplo.

m0_45209551的博客 1048

S32K144 SDK实战:FTM输入捕获模块的配置与应用

本文详细介绍了S32K144 SDK中FTM输入捕获模块的配置与应用实践。从基础认知到开发环境搭建,再到引脚配置和中断处理技巧,全面解析了如何利用FTM模块实现高精度信号测量。特别适用于电机控制、工业测速等场景,帮助开发者快速掌握S32K144的FTM输入捕获功能。

weixin_42566424的博客 217

Vivado IP核调参大师:高效配置RS编码器的避坑指南

本文深入解析Vivado中RS编码器IP核的高效配置方法,涵盖符号宽度选择、码长优化和AXI4-Stream接口控制等关键参数。重点指导如何避开常见陷阱,实现FPGA设计中的资源优化与性能平衡,提升RS编码在通信系统中的可靠性。

metaverse5vr的博客 221

ssm框架中怎么实现文件上传功能

在 SSM (Spring + SpringMVC + MyBatis) 框架中实现文件上传功能主要分为以下步骤: 在前端页面中创建一个文件上传的表单,该表单的 enctype 属性应该设置为 "multipart/form-data"。 在 SpringMVC 的 Controller 中添加文件上传的处理方法,使用 @RequestParam 注解获取上传的文件。 在处理方法中,使用 C...

weixin_35756637的博客 601

【Tessent Shell Users Manual】【Ch3】Design Introspection and Editing(未完待续)

Tessent Shell 提供了一系列用于检查(examining/introspecting)和编辑design的命令。

Tranquil_ovo的博客 1731

【SSM详解】文件上传、下载

Spring、SpringMVC、Mybatis的原理及使用方法和注意要点,还有文件上传、下载模板,如何避免文件上传下载的重名问题。在这里,你都可以找到答案!

weixin_48373085的博客 3357

NHANES数据库的介绍及使用(一)

一、数据库概况 NHANES(National Health and Nutrition Examination Survey)是一项旨在评估美国成人和儿童健康和营养状况的研究计划,计划始于20世纪60年代初期,是一项针对不同人群或健康主题的调查。 1999年该调查成为一项持续计划,涉及各种健康和营养测量,项目每年调查一个全国代表性的样本,约5000人,这些人群位于全国各县,每年对其中15个县进行访问。 NHANES访谈部分包括人口统计学、社会经济学、饮食和健康相关问题。体检部分包括生理测量、实验室检查等

Christina 5万+

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 714

SSM文件上传详细过程

基于ssm框架,在网页上实现文档的上传和下载功能。 在pom.xml中注入上传文件所需的依赖和添加了相应的配置文件情况下。 文件上传 FileController.java /** * 上传单个文件操作 * @param RequestParam 括号中的参数名file和表单的input节点的name属性值一致 * @return */ @RequestMapping(value="/doUpload", method=RequestMethod.POST) public Strin

fangfangFang_的博客 947

机器人控制基础:伺服驱动器的泄放电阻

摘要:伺服驱动器泄放电阻用于消耗电机减速或制动时产生的再生电能,防止母线电压过高损坏元件。其核心作用是将多余电能转化为热能,规避硬件损坏和停机风险。选型需关注功率、阻值和封装三大参数,功率应匹配再生能量,阻值需符合驱动器要求,封装应满足散热需求。可通过动态监测母线电压或静态检测电阻阻值来判断其是否正常工作。

start_up_go的博客 381

这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境

点击上方 牧码小子,选择置顶或者星标原创技术干货每日送达!在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐...

江南一点雨的专栏 1502

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

把xml放在项目下_这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境

点击上方 牧码小子,选择置顶或者星标原创技术干货每日送达!在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭建框架,Spring Boot 中,大量的自动化配置都是通过 Java 配置来实现的,这一套实现方案,我们也可以自己做,即自己也...

weixin_42522953的博客 114

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【纯干货分享】基于SSM框架的城市智慧停车管理系统的设计与实现65106-( java、PHP、python、C#小程序、文案全套、毕设程序定制/毕设成品等)

按照基于SSM框架的城市智慧停车管理系统的角色,主要包括车主用户和管理员这两大功能模块,各模块功能内容如下: 1.车主用户功能: (1)首页:系统首页以上中下的布局进行展示,正上方是系统的导航栏,中间是轮播图,下面是新闻资讯、车位信息推荐等信息。 (2)注册登录:用户点击首页右上角的“注册”按钮进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份等信息后点击“立即注册”按钮,系统会对输入的信息进行验证,验证通过后即可完成注册,注册后可以通过自己的账户名和密码进行登录。 ......

2301_79292407的博客 758

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于SSM+MVC三层架构实现超市会员管理系统

基于SSM实现超市会员管理系统,内容超详细~~

wanghuichen的博客 2536

2024 原创技术干货整理

上述知识点,囊括了目前互联网企业的主流应用技术以及能让你成为“香饽饽”的高级架构知识,每个笔记里面几乎都带有实战内容。很多人担心学了容易忘,这里教你一个方法,那就是重复学习。打个比方,假如你正在学习 spring 注解,突然发现了一个注解@Aspect,不知道干什么用的,你可能会去查看源码或者通过博客学习,花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。

jiameih的博客 1076

SSM+Android学籍异动管理平台:毕设设计与实现全解析

在高校信息化建设与Java Web开发实践中,如何将后端业务逻辑与移动端应用高效结合,是许多开发者关心的技术方向。SSM框架(Spring+SpringMVC+MyBatis)作为经典的分层架构,通过清晰的职责划分和灵活的事务管理,为复杂业务提供了稳定支撑;Android原生开发则能带来流畅的交互体验,尤其适合表单填写、图片上传等高频操作场景。两者结合,可有效解决多角色权限控制、审批流程状态追踪等管理系统的共性难题。在高校学籍管理领域,转专业、休学、复学等异动业务正是这类技术的典型应用场景。本文从需求分析、

weixin_34037173的博客 207

2019 原创技术干货整理

公众号的文章改整理一下了,老有小伙伴表示文章找不到,确实是这样,公众号的文章看过了没消化,后来再想找到有点难,有的小伙伴机智的收藏了一下,但是因为收藏夹里的东西太多了,后来还是不好找。 其实松哥公众号上的文章,大家都可以直接在松哥博客上搜索,博客右上角有一个搜索功能: 好了,今天我就把 2019 年公众号上的原创干货整理出来,做成索引,方便小伙伴们查找。 Spring Boot 系列 纯 Ja...

江南一点雨的专栏 5817

SpringMVC之CRUD和文件上传下载

有发现更好方法的宝宝们可以联系博主进入探讨,为博主指条明路!因为一些报错还没解决,今天给大家分享就到这啦~等待博主后续改进!1、点击下载传递文件的ID,通过文件的ID查询出文件的路径。2、通过文件的请求地址,转换成文件存放的硬盘地址。3、将硬盘中文件下载下来——>固定代码。其他功能有误, 正在努力中.....首先我们先导入我们的pom依赖!接下来就进行我们的编码阶段了!我们先导入我们的pom依赖。...

weixin_63544775的博客 500

干货分享帮你搞定毕业设计 :SSM奖学金评定系统95780 (源码 + 万套教程打包送)

本研究设计并实现了一套基于SSM框架的奖学金评定系统,旨在解决传统评定方式效率低、透明度不足的问题。系统采用Java+MySQL技术栈,实现学生端的信息查询、在线申请、互动评论功能,以及管理员的奖学金管理、申请审核、结果评定等全流程数字化管理。通过三层架构设计确保系统稳定性,并完成功能测试验证其可用性。该系统提升了评定效率与公正性,为教育资源的合理分配提供了信息化解决方案,具有推广价值。

2401_85644395的博客 395

基于SSM+Vue的社团管理系统:选题、实现到答辩完整指南

在企业级Web开发中,SSM(Spring+SpringMVC+MyBatis)作为经典Java后端组合,与Vue构建的前后端分离架构,是构建信息管理系统的常见技术选型。SSM通过控制反转与声明式事务管理业务逻辑,MyBatis灵活映射数据库操作,Vue则利用组件化和响应式数据绑定提升交互体验。基于这一技术栈的社团管理系统,覆盖社团信息管理、成员审批、活动报名等典型业务闭环,不仅适合作为毕业设计项目,也能帮助开发者深入理解配置原理、接口设计与权限控制等核心技能。文章完整复盘了从选题、数据库建模到功能实现、文

weixin_31742871的博客 162

SSM框架商品拍卖系统:毕业设计核心实现与并发控制解析

Java Web开发中,SSM框架(Spring、SpringMVC、MyBatis)作为经典的三层架构组合,至今仍是许多高校毕业设计与课程设计的指定技术栈。其分层清晰、配置灵活,能够帮助开发者深入理解控制反转、依赖注入、AOP事务代理等核心原理。在数据库设计与并发控制方面,基于版本号的乐观锁机制可以在不引入分布式组件的前提下,有效解决竞拍场景中的超卖与重复出价问题,是工程实践中的经典方案。以商品拍卖系统为例,它天然包含时间状态流转、并发出价校验、订单生成等复杂业务逻辑,既能在项目开发中串起SSM框架整合、

weixin_31292729的博客 239

SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现

spring相关概念及SSM框架在本文当中就不多述了,直接上干货! 一、用myEclipse初始化Web项目        新建一个web project: 二、创建包 controller        //控制类 service//服务接口 service.impl//服务实现类 dao  //data access object(接口) dao.i

逸少 1610
上一篇: 【Redis之轨迹】Redis基础入门(Linux & IDEA)(配套工具类例子)
下一篇: 【纯干货】SSM 实现将数据导出为 Excel 表格(利用反射实现类型通配)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰小澈IceClean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值