SSM文件按日期文件夹上传

基于Springboot和Mybatis的文件上传与下载 0. 前言 因为太久太久没有碰项目了(上一次还是2021年8月开发个人博客的时候),所以这一次打算从头到尾把整个学习和搭建的过程记录下来。 1. 简介 这是一个基于SpringBoot和Mybatis的企业级文件上传下载的实战项目,没有太多前端和UI的东西。 2. 链接 【编程不良人】基于SpringBoot和Mybatis企业级文件上传下载项目实战 1. 设计 1. 需求 用户登陆,展示用户的所有文件(文件如果是图片则在页面中显示图片) 完成文件的下载和在线打开(在线打开不计入下载次数) 在一张页面中完 阅读详情

1、导入上传需要的jar包

  • commons-fileupload-1.3.3.jar
  • commons-io-2.6.jar

2、创建 index.jsp

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

<h1>上传图片</h1>
<form action="/upload/saveUpload" method="post" enctype="multipart/form-data">
    图片名称:<input type="text" name="name"><br>
    图片:<input type="file" name="multipartFile" multiple="multiple"><br>
    上传者:<input type="text" name="uploader"><br>
    <input type="submit" value="上传">
</form>

</body>
</html>

注意:

  • 1.form表单的 method 属性设置为 post
  • 2.form表单的 enctype 属性设置为 multipart/form-data
  • 3.提供 <input type="file" name="multipartFile">的文件上传输入框

3、在springmvc.xml文件中配置CommonsMultipartResolver文件解析器

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--设置请求编码格式,必须与JSP中的pageEncoding属性一致-->
        <property name="defaultEncoding" value="UTF-8"/>
        <!--设置允许上传文件的最大值(2MB),单位为字节-->
        <property name="maxUploadSize" value="2097152"/>
</bean>

4、编写Controller层实现文件上传

package com.itheima.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.io.IOException;
import java.sql.Timestamp;
import java.util.UUID;


@Controller
@RequestMapping("/upload")
public class UploadController {

    /**
     * 文件上传
     *
     * @param multipartFile
     * @param request
     */
    @RequestMapping("/saveUpload")
    public void saveUpload(MultipartFile multipartFile, HttpServletRequest request) {

        // 以当前日期创建一个文件夹,避免单个文件夹中文件过多
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
        // 截取年月日:2020-11-02
        String substring = timestamp.toString().substring(0, 10);
        // 设置文件上传存放的路径
        String uploadPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload/" + substring);

        System.out.println("获取到的图片上传地址为:" + uploadPath);
        // 获取上传文件名字
        String uploadName = multipartFile.getOriginalFilename();
        System.out.println("原始文件名:" + uploadName);
        // 利用UUID生成新的图片名字,避免原图片被覆盖
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");

        // 截取上传文件的后缀
        String suffix = uploadName.substring(uploadName.lastIndexOf("."));
        // 拼接新的文件名字
        String newUploadName = uuid + suffix;
        System.out.println("新的文件名:" + newUploadName);

        File dir = new File(uploadPath, newUploadName);
        // exists() 测试此抽象路径名表示的文件或目录是否存在。
        // 文件夹不存在则创建文件夹
            if (!dir.getParentFile().exists()) {
                dir.getParentFile().mkdirs();
            }
            // 文件不存在则创建文件
            if (!dir.exists()) {
                dir.createNewFile();
            }
        //MultipartFile自带的解析方法
        try {
            multipartFile.transferTo(dir);
        } catch (IOException e) {
        // 移除文件
            if (dir.exists()) {
                dir.delete();
            }
            e.printStackTrace();
        }

    }

}

运行代码,图片会上传到类路径下的 \WEB-INF\upload 下,会以当前日期创建文件夹存储图片

博客地址:https://www.cnblogs.com/MavenHan/p/13917316.html
网络摄像机Sensor低光性能实测:海思平台搭配索尼IMX335 vs 豪威OV4689 本文通过海思Hi3516DV300平台,对索尼IMX335与豪威OV4689两款网络摄像机Sensor进行低光性能实测。在信噪比、动态范围及实景成像对比中,IMX335凭借更优的噪声控制与稳定性表现领先,尤其在极低光环境下优势明显。文章为安防监控项目的Sensor选型与海思平台优化提供了数据参考与实战建议。 阅读详情

相关推荐

Comfy UI实战:如何用Checkpoint和Lora打造超写实人像(附完整工作流)

本文详细介绍了如何利用Comfy UI结合Checkpoint基础模型和Lora微调模型,打造超写实人像生成系统。从核心模型选择、工作流架构设计到提示词工程和参数优化,提供了一套完整的实战指南,帮助创作者提升AI绘画的专业水准和效率。

weixin_29032489的博客 459

ssm框架实现文件上传(上传头像)

ssm框架实现文件上传(上传头像)

m0_54435916的博客 2287

告别理论纠结!用ADS和Sigrity玩转电源完整性:从PDN阻抗优化到芯片供电仿真全流程

本文详细介绍了如何利用ADS和Sigrity工具进行电源完整性(PI)分析,从PDN阻抗优化到芯片供电仿真的全流程。通过频域、直流和时域分析,工程师可以精确评估电源网络性能,优化设计以避免电压波动和系统失效。文章还提供了ADS和Sigrity PowerDC的实战操作指南,帮助读者掌握现代PI设计的核心技术。

weixin_33749242的博客 310

SSM实现文件上传

SSM实现文件上传

mwx523037520036的博客 478

Pixel 6 Pro升级Android 13变砖急救指南:Fastboot全分区修复实战

本文提供Pixel 6 Pro升级Android 13变砖后的Fastboot全分区修复实战指南,详细解析变砖原因、必备工具准备、Fastboot模式解锁、全分区擦除操作及手动刷入官方ROM的完整流程,帮助用户高效解决设备变砖问题。

weixin_28693447的博客 485

SAP License:SAP会计凭证抬头的字段状态控制

FI模块的同事一般都知道在FI中有个字段状态变式,可以控制在凭证输入时哪些字段是必输、哪些可选哪些隐藏,但这只对凭证行项目中有效,你是否想过对于凭证抬头的字段是哪控制呢? 在中国,会计附件上都要带一个附件张数字段,但SAP的默认配置中没有这一字段,并非SAP没有设置此字段,而是我们没有配置这一字段。如果需要在凭证输入时放出分支号(BRNCH)、附件页数(NUMPG)等字段,在个人参数文件中加入参数CSF,参数值AR,即可。如下图: 实际上,这是对凭证国家的一个设置,在SAP中,配置了AR这个国家..

SAP权限管控|SAP用户权限管理|SAP权限合规检查|SAP全日志管理 2221

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

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

weixin_35756637的博客 601

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+

ftp上传当天文件的方法_用批处理上传文件到ftp目录下的实现方法

为了快速将项目中开发的补丁程序通过ftp快速上传到linux下,感觉每次用flashFxp等工具麻烦),写了个简单的批处理,与大家分享一下。将以下代码保存为.bat格式的文件,每次将要上传的补丁保存在规定的本地目录中,只要双击执行此文件就能上传到你的指定目录上。说明:192.168.1.1 ftp ip 地址21 端口username 用户名password 密码temp.txt 保存ftp信息的...

weixin_39887577的博客 144

用OpenNI2获取奥比中光Astra Pro及 Astra Pro SM输出的深度图(win,linux arm64 x64平台)

搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 上获取深度信息,之前的驱动下载已经不好用了。

babytiger的专栏 1299

Tessent ICL语法详解:如何高效定义SIB、TDR和TAP模块

本文深入解析Tessent ICL语法,指导如何高效定义SIB、TDR和TAP模块以构建芯片测试网络。通过实战代码示例,详细阐述了各模块的端口声明、接口角色与核心寄存器定义,并提供了顶层集成连接方法与调试技巧,帮助DFT工程师精准描述测试仪器拓扑,提升Tessent工具链使用效率。

silver的专栏 492

ssm上传文件获取路径_SSM实现文件上传

1、导入上传需要的jar包commons-fileupload-1.3.3.jarcommons-io-2.6.jar2、创建 index.jsp上传上传图片图片名称:图片:上传者:注意:1.form表单的 method 属性设置为 post2.form表单的 enctype 属性设置为 multipart/form-data3.提供 的文件上传输入框3、在springmvc.xml文件中配置Co...

weixin_39962889的博客 773

ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)

【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。作为GIS的空间分析方法之一,缓冲区分析的应用范围特别广泛,常用于分析矢量实体对周围的影响。例如,工厂排放的废水废气所影响的空间范围等等。 一、缓冲区的基本概念 1、缓冲区 是地理空间目标的一种影响范围或服务范围。 2、缓冲区分析 指根据分析对象的点、线、面实体,自动建立它们周围一定距离的带

智慧空间实验室 1万+

单多文件上传

](这里写自定义目录标题) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样

weixin_60409485的博客 1059

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ssm实现上传文件

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。 以一个添加用户的案例介绍(主要是将上传文件)。 一、需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以)。 文件名:以 博客名+日期的年月日时分秒毫秒形式命名 如 言曌博客2017082516403213.png 路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文件夹 如

1150

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

旅游项目(三)ssm实现文件上传下载实操

用户通过浏览器以multipart格式上传到服务器后,业务层代码: public boolean uploadObject(String title, MultipartFile mFile) throws IOException { //1.判断文件合法 if(StringUtils.isEmpty(title)) throw new InputInvalidException("标题

SamHan的博客 1390

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java ssm如何上传图片_ssm整合-图片上传功能(转)

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。以一个添加用户的案例介绍(主要是将上传文件)。一、需求介绍我们要实现添加用户的时候上传图片(其实任何文件都可以)。文件名:以 博客名+日期的年月日时分秒毫秒形式命名如 言曌博客2017082516403213.png路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文件夹如 uploads/2017/...

weixin_33376592的博客 650

ssm 文件上载功能

导入包 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.u...

hahaowenGG的博客 231

ssm整合-图片上传功能(转)

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。 以一个添加用户的案例介绍(主要是将上传文件)。 一、需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以)。 文件名:以 博客名+日期的年月日时分秒毫秒形式命名 如 言曌博客2017082516403213.png 路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文...

azjnf1847的博客 171

java简单图片上传

ssm普通项目 //上传图片 String name = UUID.randomUUID().toString(); String newFileName = name + ".jpg"; File newFile = new File(request.getServletContext().getRealPath("/image"), newFileName); newFile.getParentFile().mkdirs();

weixin_2630663675的博客 352

SSM单文件上传

前端 &lt;form action="/file/fileupload" method="post" enctype="multipart/form-data"&gt; &lt;label&gt;文件上传&lt;/label&gt; &lt;input type="file" name="file"&gt; &amp

beidaol的专栏 222

ssm+maven 实现文件上传

文件上传依赖 &lt;!--文件上传依赖的版本号--&gt; &lt;commons-fileupload.version&gt;1.3.1&lt;/commons-fileupload.version&gt; &lt;commons-io.version&gt;2.4&lt;/commons-io.version&gt; ...

zdj18166896501的博客 668

使用SSM框架实现文件上传

前端jsp代码 <input type="file" name="file" id="input_file" style="display:inline;" required="required"> ( 推荐尺寸: 500 * 500 ) 后端代码 package com.hopu.controller; import com.github.pagehelper.PageInfo; import com.hopu.bean.Admins; import com.hopu.bean.Goods

Vue1024的博客 284

SSM SpringMVC上传多个图片

导入包: commons-fileupload commons-fileupload 1.3.3 Spring.xml:配置MultipartResolver:用于处理表单中的file //请求的编码格式 //value可以随便打多大 //文件最大大小(字节) 1024102450=50M &amp;amp;amp;amp;amp;amp;lt;/bean&amp;amp;amp;amp;amp;amp;gt; jsp页面:&amp;

梦奇 1702

SSM—09—SSM 框架下图片存储的深度解析与实践:三种方式全掌握——文件、二进制、Base64

在当今的 Web 应用开发中,图片的存储与展示是一个非常常见的功能需求。无论是用户头像、商品图片还是各种多媒体素材,图片都扮演着重要的角色。而对于基于 SSM 框架的项目来说,如何高效、合理地存储图片是一个值得深入探讨的问题。本文将带你走进 SSM 框架下的图片存储世界,深入剖析三种常见的图片存储方式,让你在实际项目开发中能够根据具体需求选择最合适的存储方案,提升项目的性能和用户体验。以图片文件形式存入 web 容器的方式简单直观,适合图片数量较少、对访问速度要求较高的场景。

2201_75525624的博客 1189

微人事第四天:单文件上传

在ssm项目中我们如果要文件上传需要在xml文件中配置很多东西,使用springboot可以帮助我们减少很多配置。 1.首先还是创建springboot工程 引入web 2.编写提价界面index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> ...

qq_41998938的博客 281
下一篇: SSM使用UEditor富文本编辑器
hanlin-hl
博客等级 码龄8年 3粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

hanlin-hl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值